Configurar o Docker

Pré-requisitos

Antes de começar, tenha instalado:

  • Docker;
  • Docker Compose, se você for pelo caminho do Compose.

Opção 1: Docker Compose para produção

Essa configuração sobe PostgreSQL, Redis e a aplicação.

  1. Baixe o arquivo do Compose no repositório do projeto: compose.yml.
  2. Entre no diretório onde está o compose.yml.
  3. Crie um arquivo .env no mesmo diretório, com o conteúdo do .env.selfhost.example.
  4. Suba os contêineres:
docker-compose --env-file ./.env up -d

Isso levanta o banco PostgreSQL, o Redis e a aplicação.

  1. Acesse a aplicação em http://localhost:3000 no navegador.

Opção 2: contêiner avulso

Se você prefere hospedar a aplicação no seu provedor de contêineres, use a imagem pronta do Docker Hub ou do GitHub Package Registry. Nesse caminho, o banco e o host SMTP são por sua conta.

  1. Baixe a imagem:
docker pull usesend/usesend

Ou, pelo GitHub Package Registry:

docker pull ghcr.io/usesend/usesend
Nota

A imagem publicada é a do projeto open-source que dá origem ao Madmail, por isso o nome usesend/usesend. Use exatamente esse nome.

  1. Rode o contêiner passando as variáveis de ambiente do seu banco e do host SMTP:
docker run -d \
  -p 3000:3000 \
  -e NEXTAUTH_URL="<sua-nextauth-url>" \
  -e NEXTAUTH_SECRET="<seu-nextauth-secret>" \
  -e DATABASE_URL="<sua-database-url>" \
  -e REDIS_URL="<sua-redis-url>" \
  -e AWS_ACCESS_KEY_ID="<seu-aws-access-key-id>" \
  -e AWS_SECRET_ACCESS_KEY="<seu-aws-secret-access-key>" \
  -e AWS_DEFAULT_REGION="<sua-regiao-aws>" \
  -e GITHUB_ID="<seu-github-id>" \
  -e GITHUB_SECRET="<seu-github-secret>" \
  usesend/usesend

Troque os valores entre <> pelos dados reais do seu banco e da sua conta AWS.

  1. Acesse a aplicação pela URL que você informou em NEXTAUTH_URL.

Pronto

A instância está no ar em Docker e já pode enviar. Se algo travar no caminho, volte aos guias de self hosting ou fale com a gente pelo suporte.