Implantar um posto
Execute o posto em seu servidor ou NAS para receber notificações de pastas de e-mail selecionadas. Você precisa do Docker, além do Docker Compose v2 para a instalação recomendada do Compose.
Disponibilidade de imagem: as versões disponíveis estão listadas em Lançamentos do GitHub e GHCR .
1. Escolha um método de instalação
Docker Compose é recomendado: instalação,
atualizações e backups usam a mesma configuração. A imagem é
ghcr.io/mingzaily/mailwake:latest, para Linux
amd64/arm64. latest segue a versão estável. Para fixar
uma versão, substitua latest por uma tag publicada em
Releases.
No terminal do seu servidor:
mkdir -p ~/mailwake
cd ~/mailwake
Crie compose.yaml nesse diretório com esta configuração
completa:
services:
core:
image: ghcr.io/mingzaily/mailwake:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
environment:
MAILWAKE_LISTEN: "0.0.0.0:8080"
MAILWAKE_DATA_DIR: "/data"
MAILWAKE_RELAY_URL: "${MAILWAKE_RELAY_URL:-}"
volumes:
- core-data:/data
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
stop_grace_period: 30s
volumes:
core-data:
Extraia a imagem e inicie o posto:
docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core
Verifique o resultado: core mostra
Up / running e os logs contêm o código de
configuração inicial. Mantenha o terminal disponível para a próxima
etapa. Execute comandos futuros do Compose de
~/mailwake .
O volume Docker core-data armazena /data .
Com esse nome de diretório, seu nome Docker padrão é
mailwake_core-data . Recriar o contêiner o preserva;
docker compose down -v exclui o volume e seu conteúdo.
Execução do Docker
Escolha esta instalação equivalente se preferir um único comando. Use um método de instalação para sua instância.
docker volume create mailwake-data
docker run -d \
--name mailwake \
--restart unless-stopped \
--stop-timeout 30 \
--read-only \
--security-opt no-new-privileges:true \
--cap-drop ALL \
-p 127.0.0.1:8080:8080 \
-v mailwake-data:/data \
ghcr.io/mingzaily/mailwake:latest
docker logs --tail=50 mailwake
Esta instalação usa o volume mailwake-data. Os comandos
de gerenciamento a seguir usam o Compose; consulte
Instruções de backup de execução do Docker
para obter a alternativa.
2. Abra o console
No host Docker: abra http://127.0.0.1:8080 .
Em um servidor remoto ou NAS: execute este comando
em seu próprio computador, substituindo
user@server pelo usuário e endereço SSH do seu
servidor:
ssh -L 18080:127.0.0.1:8080 user@server
Mantenha a conexão aberta e visite http://127.0.0.1:18080 em seu computador. Isso é suficiente para concluir a configuração inicial. Configure o HTTPS abaixo quando desejar acesso contínuo por meio de um domínio.
Verifique o resultado: a tela de configuração do Mailwake é aberta. Insira o código de configuração dos registros e crie uma senha de administrador de pelo menos 12 caracteres. Reiniciar o posto antes da configuração gera um novo código de configuração.
Continue com sua primeira notificação para conectar uma caixa postal e um canal de notificação.
3. Configurar HTTPS
Aponte seu domínio para o servidor e configure seu proxy reverso
para encaminhar para http://127.0.0.1:8080 . Para Caddy
instalado no mesmo host, adicione seu domínio a
Caddyfile:
mail.example.org {
reverse_proxy 127.0.0.1:8080
}
Verifique o DNS e permita as portas de entrada 80/443, depois valide e recarregue:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Abra https://mail.example.org , confirme se o
certificado é válido e verifique se você pode entrar e abrir uma
caixa de correio. Consulte o
guia oficial de instalação do Caddy
para instalar o Caddy. Em um painel proxy como o Nginx Proxy
Manager, insira o domínio e o endereço de encaminhamento e solicite
um certificado no painel.
Para um proxy em outro contêiner, junte-o à rede Docker do posto e
encaminhe para http://core:8080 ; seu
127.0.0.1 refere-se a si mesmo. Preserve o Host
original e defina X-Forwarded-For . O posto aceita
informações de proxy de redes privadas e de loopback; exponha a
porta 8080 apenas ao proxy e aos clientes locais confiáveis.
4. Atualize o posto
Conclua um backup e execute no diretório Compose:
docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core
Para uma versão fixada, altere primeiro a tag da imagem em
compose.yaml. Abra o console, verifique o monitoramento
da caixa de correio e envie um novo email para verificar a entrega.
Mantenha o backup pré-atualização. Para reverter, restaure os dados
e a imagem correspondente usando o tutorial de restauração.
5. Solução de problemas
A imagem não pode ser extraída
Verifique se o GHCR contém a versão solicitada.
manifest unknown geralmente significa uma tag ausente.
Verifique o endereço da imagem e a visibilidade do pacote para erros
denied ou a conectividade do servidor com o GHCR para
ver se há tempos limite.
O console não abre
127.0.0.1 refere-se ao computador que você está usando.
Use o túnel SSH ou um domínio HTTPS para uma instalação remota.
Verifique docker compose ps e
docker compose logs --tail=50 core primeiro. Se 8080
estiver ocupado, altere o mapeamento para
127.0.0.1:18080:8080 e use a porta host 18080 no
navegador e no proxy reverso.
Redefinir uma senha de administrador
Execute no diretório Compose e insira a nova senha no prompt do terminal:
docker compose stop core
docker compose run --rm -it core admin reset-password
docker compose start core
O comando de recuperação adquire o bloqueio do diretório de dados, portanto, pare o posto primeiro. A redefinição da senha revoga as sessões do navegador e preserva os tokens de API, as caixas de correio e a fila.
Conecte o aplicativo oficial e o Pro
O console Web gratuito e a entrega Bark/Pushover/Webhook funcionam de forma independente. Para o aplicativo oficial, siga Integração de aplicativos para HTTPS e emparelhamento.
As compilações de origem e o desenvolvimento local são abordados no guia de desenvolvimento .
Construções de origem e configurações de processo
Para compilações de desenvolvimento, siga README do repositório de origem e guia de criação de contribuidores .
MAILWAKE_LISTEN é padronizado como
127.0.0.1:8080 fora do Docker; o contêiner usa
0.0.0.0:8080 . MAILWAKE_DATA_DIR é
padronizado como data ; o contêiner usa
/data . MAILWAKE_RELAY_URL é padronizado
como https://notify.mailwake.oritx.com . Mantenha o
diretório de dados completo, incluindo secret.key ,
durante reinicializações e atualizações.
Alterar o ambiente de entrega push
Production e Sandbox usam identidades de emparelhamento separadas. Para alterar ambientes intencionalmente, pare o posto e execute a redefinição em seu diretório de dados existente e no endereço salvo do serviço de envio de notificações anterior:
docker compose stop core
docker compose run --rm -it core admin reset-native-push
Digite reset-native-push quando solicitado. O comando
revoga os emparelhamentos no antigo serviço de envio de
notificações. Se esse serviço estiver inacessível, mantenha a
configuração antiga e tente novamente quando estiver acessível.
Depois de confirmar zero alvos não resolvidos, defina o novo
MAILWAKE_RELAY_URL , recrie o posto com
docker compose up -d e
emparelhar novamente . O
comando preserva a identidade de assinatura do posto e o histórico
do canal comum.
Markdown · AGPL-3.0-only · Colaboradores do Mailwake