20 Aplicativos Gratuitos open source para você instalar no Portainer

Tutoriais

Antes de começarmos a configuração das aplicações no Portainer.io com Docker Swarm, é essencial garantir um desempenho ótimo e tempo de resposta rápido. Recomendamos contratar um servidor VPS Linux, Ubuntu ou Debian.

Aprenda como instalar e tenha acesso as stack totalmente gratuitas nos links abaixo:

Sumário

#11 - Como Instalar o Mautic 5

A instalação do Mautic é bem simples, exigindo apenas um banco de dados MySQL

O Mautic, como outras aplicações, opera com três serviços principais:

  • mautic_web
  • mautic_worker
  • mautic_cron
 

Além disso, é essencial mapear corretamente os volumes do Mautic, incluindo as crons, conforme listado abaixo:

  • mautic_config: /var/www/html/config
  • mautic_docroot: /var/www/html/docroot
  • mautic_media: /var/www/html/docroot/media
  • mautic_logs: /var/www/html/var/logs
  • mautic_cron: /opt/mautic/cron
 

Você pode verificar cada volume no menu Volumes do Portainer.

A stack abaixo não inclui um banco de dados, pois nossa estrutura Docker já possui um banco de dados em uma rede específica. Você apenas precisa informar a mesma rede do banco de dados ou adaptá-la conforme necessário.

WORKER: As variáveis para processar números de processos vêm configuradas, por padrão, com o valor 2. Você pode alterar essas variáveis, mas isso aumentará o consumo de recursos.

  • DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL
  • DOCKER_MAUTIC_WORKERS_CONSUME_HIT
  • DOCKER_MAUTIC_WORKERS_CONSUME_FAILED
  • Acesse o “Exec Console” do MYSQL pré-instalado e use o comando abaixo:
				
					mysql -uroot -p
				
			
  • Coloque sua senha (enter)
				
					CREATE DATABASE mautic_db;
				
			
				
					version: "3.8"

services:
  #serviço principal web
  mautic_web:
    image: mautic/mautic:5-apache
    ports:
      - 8001:80
    networks:
      - traefik_public
      - digital_network
    volumes:
      - mautic_config:/var/www/html/config
      - mautic_docroot:/var/www/html/docroot
      - mautic_media:/var/www/html/docroot/media
      - mautic_logs:/var/www/html/var/logs
      - mautic_cron:/opt/mautic/cron
    environment:
      DOCKER_MAUTIC_ROLE: mautic_web
      #banco de dados
      MAUTIC_DB_HOST: mysql
      MAUTIC_DB_PORT: 3306
      MAUTIC_DB_USER: root
      MAUTIC_DB_PASSWORD: <sua senha>
      PHP_INI_VALUE_DATE_TIMEZONE: "America/Sao_Paulo"
      #numeros de processos do worker: email, hit e failed
      DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL: 2
      DOCKER_MAUTIC_WORKERS_CONSUME_HIT: 2
      DOCKER_MAUTIC_WORKERS_CONSUME_FAILED: 2
      # DOCKER_MAUTIC_RUN_MIGRATIONS: "false"
      # DOCKER_MAUTIC_LOAD_TEST_DATA: "false"
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 1024M
      labels:
      - traefik.enable=true
      - traefik.http.routers.mautic_web.rule=Host(`subdominio.digitalinterativo.com.br`)
      - traefik.http.routers.mautic_web.entrypoints=websecure
      - traefik.http.routers.mautic_web.tls=true
      - traefik.http.routers.mautic_web.tls.certresolver=le
      - traefik.http.routers.mautic_web.service=mautic_web
      - traefik.http.services.mautic_web.loadbalancer.server.port=80
      
      # Configurações de CORS
      - traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET,OPTIONS,POST
      - traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=https://subdominio.digitalinterativo.com.br
      - traefik.http.middlewares.cors-headers.headers.accessControlAllowCredentials=true
      - traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Content-Type,Authorization,X-Requested-With
      - traefik.http.middlewares.cors-headers.headers.accessControlMaxAge=100
      - traefik.http.middlewares.cors-headers.headers.addVaryHeader=true
      
      # Middleware de redirecionamento HTTP para HTTPS
      - traefik.http.routers.mautic_insecure.rule=Host(`subdominio.digitalinterativo.com.br`)
      - traefik.http.routers.mautic_insecure.entrypoints=web
      - traefik.http.routers.mautic_insecure.middlewares=cors-headers,redirect-to-https
      - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https

  #serviço para worker
  mautic_worker:
    image: mautic/mautic:5-apache
    networks:
      - digital_network
    volumes:
      - mautic_config:/var/www/html/config
      - mautic_docroot:/var/www/html/docroot
      - mautic_media:/var/www/html/docroot/media
      - mautic_logs:/var/www/html/var/logs
      - mautic_cron:/opt/mautic/cron
    environment:
      DOCKER_MAUTIC_ROLE: mautic_worker
      #banco de dados
      MAUTIC_DB_HOST: mysql
      MAUTIC_DB_PORT: 3306
      MAUTIC_DB_USER: root
      MAUTIC_DB_PASSWORD: <sua senha>
      PHP_INI_VALUE_DATE_TIMEZONE: "America/Sao_Paulo"
      #numeros de processos do worker: email, hit e failed
      DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL: 2
      DOCKER_MAUTIC_WORKERS_CONSUME_HIT: 2
      DOCKER_MAUTIC_WORKERS_CONSUME_FAILED: 2
      #DOCKER_MAUTIC_RUN_MIGRATIONS: "false"
      #DOCKER_MAUTIC_LOAD_TEST_DATA: "false"
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 1024M

  #serviço para cron
  mautic_cron:
    image: mautic/mautic:5-apache
    networks:
      - digital_network
    volumes:
      - mautic_config:/var/www/html/config
      - mautic_docroot:/var/www/html/docroot
      - mautic_media:/var/www/html/docroot/media
      - mautic_logs:/var/www/html/var/logs
      - mautic_cron:/opt/mautic/cron
    environment:
      DOCKER_MAUTIC_ROLE: mautic_cron
      #banco de dados
      MAUTIC_DB_HOST: mysql
      MAUTIC_DB_PORT: 3306
      MAUTIC_DB_USER: root
      MAUTIC_DB_PASSWORD: <sua senha>
      PHP_INI_VALUE_DATE_TIMEZONE: "America/Sao_Paulo"
      #numeros de processos do worker: email, hit e failed
      DOCKER_MAUTIC_WORKERS_CONSUME_EMAIL: 2
      DOCKER_MAUTIC_WORKERS_CONSUME_HIT: 2
      DOCKER_MAUTIC_WORKERS_CONSUME_FAILED: 2
      #DOCKER_MAUTIC_RUN_MIGRATIONS: "false"
      #DOCKER_MAUTIC_LOAD_TEST_DATA: "false"
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.2"
          memory: 512M

volumes:
  mautic_config:
    external: true
  mautic_docroot:
    external: true
  mautic_media:
    external: true
  mautic_logs:
    external: true
  mautic_cron:
    external: true

networks:
  traefik_public:
    external: true
  digital_network:
    external: true

				
			

#12 - Como Instalar o Baserow

				
					version: "3.8"

services:
  baserow:
    image: baserow/baserow:latest
    networks:
      - traefik_public
      - digital_network
    volumes:
      - baserow_data:/baserow/data
    environment:
      BASEROW_PUBLIC_URL: https://baserow.SEU_DOMINIO.com.br
      DATABASE_HOST: postgres
      DATABASE_NAME: baserow
      DATABASE_USER: postgres
      DATABASE_PASSWORD: <SUA_SENHA_POSTGRES>
      BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION: "false"
      BASEROW_ROW_PAGE_SIZE_LIMIT: 200
      BATCH_ROWS_SIZE_LIMIT: 200
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 1024M
      labels:
        - traefik.enable=true
        - traefik.http.routers.baserow.rule=Host(`baserow.SEU_DOMINIO.com.br`)
        - traefik.http.routers.baserow.entrypoints=websecure
        - traefik.http.routers.baserow.tls.certresolver=le
        - traefik.http.routers.baserow.service=baserow
        - traefik.http.services.baserow.loadbalancer.server.port=80

volumes:
  baserow_data:
    external: true

networks:
  traefik_public:
    external: true
  digital_network:
    external: true
				
			

#13 - Como Instalar o MySQL

				
					version: "3.8"

services:
  mysql:
    image: mysql:8.0
    command:
      [
        --character-set-server=utf8mb4,
        --collation-server=utf8mb4_general_ci,
        --sql-mode=,
        --authentication_policy=caching_sha2_password,
        --max-allowed-packet=512MB,
        --port=3306,
      ]
    #ports:
      #- 3306:3306
    networks:
      - digital_network
    volumes:
      - mysql_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: <SUA_SENHA_AQUI>
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 512M

volumes:
  mysql_data:
    external: true

networks:
  digital_network:
    external: true
  traefik_public:
    external: true
				
			

#14 - Como Instalar o NocoBase

				
					version: "3.8"

services:
  nocobase:
    image: nocobase/nocobase:main
    networks:
      - traefik_public
      - digital_network
    volumes:
      - nocobase_data:/app/nocobase/storage
    environment:
      APP_KEY: SUA_CHAVE_KEY
      DB_DIALECT: postgres
      DB_HOST: postgres
      DB_DATABASE: nocobase
      DB_USER: postgres
      DB_PASSWORD: <SENHA_POSTGRES>
      LOCAL_STORAGE_BASE_URL: /storage/uploads
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "1"
          memory: 1024M
      labels:
        - traefik.enable=true
        - traefik.http.routers.nocobase.rule=Host(`nocobase.SEU_DOMINIO.com.br`)
        - traefik.http.routers.nocobase.entrypoints=websecure
        - traefik.http.routers.nocobase.tls.certresolver=le
        - traefik.http.routers.nocobase.service=nocobase
        - traefik.http.services.nocobase.loadbalancer.server.port=80

volumes:
  nocobase_data:
    external: true

networks:
  traefik_public:
    external: true
  digital_network:
    external: true
				
			

#15 - Como Instalar o RabbitMQ

				
					version: "3.8"

services:
  rabbit_mq:
    image: rabbitmq:management
    command: rabbitmq-server
    networks:
      - traefik_public
    hostname: rabbit_mq
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq
    environment:
      RABBITMQ_ERLANG_COOKIE: <CHAVE_SECRETA>
      RABBITMQ_DEFAULT_VHOST: digitalinterativo
      RABBITMQ_DEFAULT_USER: <USUARIO>
      RABBITMQ_DEFAULT_PASS: <SUA_SENHA>
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 512M
      labels:
        - traefik.enable=true
        - traefik.http.routers.rabbit_mq.rule=Host(`rabbit.SEU_DOMINIO.com.br`)
        - traefik.http.routers.rabbit_mq.entrypoints=websecure
        - traefik.http.routers.rabbit_mq.tls.certresolver=le
        - traefik.http.routers.rabbit_mq.service=rabbit_mq
        - traefik.http.services.rabbit_mq.loadbalancer.server.port=15672

volumes:
  rabbitmq_data:
    external: true

networks:
  traefik_public:
    external: true
				
			

#16 - Como Instalar o PGAdmin

				
					version: "3.8"

services:
  pgadmin:
    image: dpage/pgadmin4:latest
    environment:
      PGADMIN_DEFAULT_EMAIL: <SEU_EMAIL>
      PGADMIN_DEFAULT_PASSWORD: <SUA_SENHA>
    volumes:
      - pgadmin_data:/var/lib/pgadmin
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.4"
          memory: 256M
      labels:
        - traefik.enable=true
        #SSL
        - traefik.http.routers.pgadmin.rule=Host(`pg.SEU_DOMINIO.com.br`)
        - traefik.http.routers.pgadmin.entrypoints=websecure
        - traefik.http.routers.pgadmin.tls.certresolver=le
        - traefik.http.routers.pgadmin.service=pgadmin
        - traefik.http.services.pgadmin.loadbalancer.server.port=80
    networks:
      - traefik_public
      - digital_network

networks:
  traefik_public:
    external: true
  digital_network:
    external: true

volumes:
  pgadmin_data:
    external: true
				
			

#17 - Como Instalar o PGBouncer

– Informe o pgbouncer como host nas configurações do banco.

				
					version: "3.8"

services:
  pgbouncer:
    image: edoburu/pgbouncer:latest
    networks:
      - digital_network
    environment:
      DB_HOST: postgres
      DB_USER: <USUARIO_POSTGRESQL>
      DB_PASSWORD: <SENHA_POSTGRESQL>
      POOL_MODE: session
      AUTH_TYPE: scram-sha-256
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager

networks:
  digital_network:
    external: true
				
			

#18 - Como Instalar o Cal.com

– Essa aplicação demora para ser processada devido seu tamanho de 4GB, então, espere o tempo suficiente para o SSL e todos os recursos estarem ativos.

				
					version: "3.8"

services:
  calcom:
    image: calcom/cal.com:v4.2.5
    networks:
      - traefik_public
      - digital_network
    environment:
      #NEXT_PUBLIC_LICENSE_CONSENT:
      #LICENSE:
      #Use `openssl rand -base64 32` to generate a key
      NEXTAUTH_SECRET: <SUA_CHAVE>
      CALENDSO_ENCRYPTION_KEY: <SUA_CHAVE>
      #customização
      NEXT_PUBLIC_APP_NAME: "digitalinterativo.com.br"
      NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS: "<SEU_E-MAIL>"
      NEXT_PUBLIC_COMPANY_NAME: "ANW inc."
      #URL da aplicação
      NEXT_PUBLIC_WEBAPP_URL: https://agenda.SEU_DOMINIO.com.br
      NEXT_PUBLIC_API_V2_URL: https://agenda.SEU_DOMINIO.com.br
      #dados do banco
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: <SUA_SENHA>
      POSTGRES_DB: calcom
      DATABASE_HOST: postgres:5432
      DATABASE_URL: postgresql://<USUARIO>:<SENHA>@<HOST>:5432/calcom
      DATABASE_DIRECT_URL: postgresql://<USUARIO>:<SENHA>@<HOST>:5432/calcom
      GOOGLE_API_CREDENTIALS: "{}"
      # Set to '1' if you don't want Cal to collect anonymous
      CALCOM_TELEMETRY_DISABLED: 1
      # Configurações de E-mail
      EMAIL_FROM: <SEU_E-MAIL>
      #EMAIL_SERVER_HOST: smtp-relay.brevo.com
      #EMAIL_SERVER_PORT: 587
      #EMAIL_SERVER_USER: contato@digitalinterativo.com.br
      #EMAIL_SERVER_PASSWORD: <SENHA_BREVO>
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: "1.2G"
      labels:
        - traefik.enable=true
        - traefik.http.routers.calcom.rule=Host(`agenda.SEU_DOMINIO.com.br`)
        - traefik.http.routers.calcom.entrypoints=websecure
        - traefik.http.routers.calcom.tls.certresolver=le
        - traefik.http.routers.calcom.service=calcom
        - traefik.http.services.calcom.loadbalancer.server.port=3000

networks:
  traefik_public:
    external: true
  digital_network:
    external: true
				
			

#19 - Como Instalar o Odoo

Requisitos para a Instalação

Para instalar o CRM Odoo, é necessário um banco de dados PostgreSQL.

Criando Usuário e Senha

Crie um usuário e uma senha distintos do padrão (postgres). Utilize o comando abaixo para realizar essa configuração rapidamente:

CREATE USER odoo WITH PASSWORD 'SUA_SENHA' SUPERUSER;

 

Este comando cria um usuário chamado odoo com uma senha definida e privilégio de SUPERUSER.

  • odoo: nome do usuário do banco
  • ‘SUA_SENHA’: substitua pelo valor desejado, mantendo as aspas simples

Nota: Esta configuração está mais relacionada ao banco de dados do que ao Docker. Embora o Docker forneça ferramentas para facilitar esse processo, existem outras formas de atingir o mesmo objetivo em diferentes ambientes.

				
					version: "3.8"

services:
  #serviço principal do odoo
  odoo:
    image: odoo:17.0
    networks:
      - traefik_public
      - digital_network
    volumes:
      - odoo_web_data:/var/lib/odoo
      - odoo_confg:/etc/odoo
      - odoo_addons:/mnt/extra-addons
    environment:
      HOST: postgres
      PORT: 5432
      USER: <USUARIO>
      PASSWORD: <SENHA>
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "1"
          memory: 1024M
      labels:
        - traefik.enable=true
        # Rotas para http [porta 80]
        - traefik.http.routers.odoo_not_ssl.rule=Host(`odoo.SEU_DOMINIO.com.br`)
        - traefik.http.routers.odoo_not_ssl.entrypoints=web
        # Redireciona para HTTPS INDIVIDUALMENTE
        # So utilize se você NÃO tiver habilitado o redirecionamento GLOBAL do Traefik!
        - traefik.http.middlewares.odoo_redirect_ssl.redirectscheme.scheme=https
        - traefik.http.routers.odoo_not_ssl.middlewares=odoo_redirect_ssl
        #Rotas para aplicar SSL [porta 443]
        - traefik.http.routers.odoo.rule=Host(`odoo.SEU_DOMINIO.com.br`)
        - traefik.http.routers.odoo.entrypoints=websecure
        - traefik.http.routers.odoo.tls.certresolver=le
        - traefik.http.routers.odoo.service=odoo
        - traefik.http.services.odoo.loadbalancer.server.port=8069

volumes:
  odoo_web_data:
    external: true
  odoo_confg:
    external: true
  odoo_addons:
    external: true

networks:
  traefik_public:
    external: true
  digital_network:
    external: true
				
			

#20 - Como Instalar o Vaultwarden

Gerando PUSH_INSTALLATION_ID e PUSH_INSTALLATION_KEY

Para gerar um PUSH_INSTALLATION_ID e PUSH_INSTALLATION_KEY, siga as instruções abaixo:

  1. Acesse o link para criar seu Push ID.
  2. Insira seu e-mail e selecione a Data Region como bitwarden.com (United States).
  3. Copie as informações geradas e adicione ou descomente as variáveis de ambiente correspondentes no seu arquivo de configuração:

PUSH_ENABLED: “true”
PUSH_INSTALLATION_ID: SEU_ID_GERADO
PUSH_INSTALLATION_KEY: SUA_KEY_GERADA

Lembre-se de substituir SEU_ID_GERADO e SUA_KEY_GERADA pelos valores que você obteve.

				
					version: "3.8"

services:
  vault:
    image: vaultwarden/server:1.30.5-alpine
    networks:
      - traefik_public
    volumes:
      - vault_data:/data
      - vault_web_static:/web-vault
    environment:
      DOMAIN: https://vault.SEU_DOMINIO.com.br
      DATABASE_URL: URL_do_BANCO
      YUBICO_CLIENT_ID: ID
      YUBICO_SECRET_KEY: KEY
      SIGNUPS_ALLOWED: "true"
      push tem que gerar diretamente do bitwarden
      PUSH_ENABLED: "true"
      PUSH_INSTALLATION_ID: ID
      PUSH_INSTALLATION_KEY: KEY
      SMTP
      SMTP_HOST: HOST
      SMTP_FROM: FROM
      SMTP_PORT: 587
      SMTP_SECURITY: starttls
      SMTP_USERNAME: USUARIO
      SMTP_PASSWORD: SENHA
      TZ: "America/Sao_Paulo"
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 512M
      labels:
        - traefik.enable=true
        # ROTA SEM SSL
        - traefik.http.routers.vault_not_ssl.rule=Host(`vault.SEU_DOMINIO.com.br`)
        - traefik.http.routers.vault_not_ssl.entrypoints=web
        #MIDDLEWARE (Retire se já estiver habilitada GLOBALMENTE)
        - traefik.http.middlewares.vault_redirect_ssl.redirectscheme.scheme=https
        - traefik.http.routers.vault_not_ssl.middlewares=vault_redirect_ssl
        # ROTA COM SSL
        - traefik.http.routers.vault.rule=Host(`vault.SEU_DOMINIO.com.br`)
        - traefik.http.routers.vault.entrypoints=websecure
        - traefik.http.routers.vault.tls.certresolver=le
        - traefik.http.routers.vault.service=vault
        - traefik.http.services.vault.loadbalancer.server.port=80

volumes:
  vault_data:
    external: true
  vault_web_static:
    external: true

networks:
  traefik_public:
    external: true
				
			

Gostou do conteúdo? Quer apoiar nosso trabalho?

Você pode fazer uma doação e nos ajudar a continuar criando conteúdo de qualidade. Acesse o link para ver as formas de pagamento disponíveis: https://www.asaas.com/c/io73sms6maiim7ud

Chave Pix: (15) 99855-8323

Share the Post:

Post Relacionados