Desplegar un puesto
Ejecute el puesto en su servidor o NAS para recibir notificaciones de carpetas de correo electrónico seleccionadas. Necesita Docker, además de Docker Compose v2 para la instalación recomendada de Compose.
Disponibilidad de imágenes: las versiones disponibles se enumeran en Lanzamientos de GitHub y GHCR.
1. Elija un método de instalación
Se recomienda Docker Compose: la instalación, las
actualizaciones y las copias de seguridad utilizan la misma
configuración. La imagen es
ghcr.io/mingzaily/mailwake:latest, para Linux
amd64/arm64. latest sigue la versión estable. Para
fijar una versión, reemplace latest con una etiqueta
publicada de Lanzamientos.
En su terminal de servidor:
mkdir -p ~/mailwake
cd ~/mailwake
Crea compose.yaml en ese directorio con esta
configuración 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:
Extraiga la imagen e inicie el puesto:
docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core
Verifique el resultado: core muestra
Up / running y los registros contienen el
código de configuración inicial. Mantenga el terminal disponible
para el siguiente paso. Ejecute futuros comandos de redacción desde
~/mailwake.
El volumen Docker core-data almacena
/data. Con este nombre de directorio, su nombre Docker
predeterminado es mailwake_core-data. Recrear el
contenedor lo conserva; docker compose down -v elimina
el volumen y su contenido.
Ejecución de Docker
Elija esta instalación equivalente si prefiere un solo comando. Utilice un método de instalación para su instancia.
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 instalación utiliza el volumen mailwake-data. Los
siguientes comandos de administración utilizan Compose; consulte el
Instrucciones de copia de seguridad de Docker Run
para ver la alternativa.
2. Abra la consola.
En el host Docker: abra http://127.0.0.1:8080.
En un servidor remoto o NAS: ejecute este comando
en su propia computadora, reemplazando user@server con
el usuario y la dirección SSH de su servidor:
ssh -L 18080:127.0.0.1:8080 user@server
Mantenga la conexión abierta y visite http://127.0.0.1:18080 en su computadora. Esto es suficiente para completar la configuración inicial. Configure HTTPS a continuación cuando desee acceso continuo a través de un dominio.
Comprueba el resultado: se abre la pantalla de configuración de Mailwake. Ingrese el código de configuración de los registros y cree una contraseña de administrador de al menos 12 caracteres. Reiniciar el puesto antes de la configuración genera un nuevo código de configuración.
Continúe con tu primera notificación para conectar un buzón y un canal de notificación.
3. Configurar HTTPS
Apunte su dominio al servidor y configure su proxy inverso para
reenviarlo a http://127.0.0.1:8080. Para Caddy
instalado en el mismo host, agregue su dominio a
Caddyfile:
mail.example.org {
reverse_proxy 127.0.0.1:8080
}
Verifique DNS y permita los puertos entrantes 80/443, luego valide y vuelva a cargar:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Abra https://mail.example.org, confirme que el
certificado sea válido y verifique que puede iniciar sesión y abrir
un buzón. Consulte
guía oficial de instalación de Caddy
para instalar Caddy. En un panel de proxy como Nginx Proxy Manager,
ingrese el dominio y la dirección de reenvío y solicite un
certificado en el panel.
Para un proxy en otro contenedor, únalo a la red Docker del puesto y
reenvíelo a http://core:8080; su
127.0.0.1 se refiere a sí mismo. Conserve el host
original y configure X-Forwarded-For. El puesto acepta
información de proxy de redes privadas y de loopback; exponga el
puerto 8080 sólo al proxy y a los clientes locales de confianza.
4. Actualizar el puesto
Complete un respaldo y luego ejecútelo en el directorio Compose:
docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core
Para una versión fijada, primero cambie la etiqueta de imagen en
compose.yaml. Abra la consola, verifique el monitoreo
del buzón y envíe un nuevo correo electrónico para verificar la
entrega. Mantenga la copia de seguridad previa a la actualización.
Para retroceder, restaure tanto sus datos como su imagen coincidente
usando el tutorial de restauración.
5. Solución de problemas
La imagen no se puede extraer
Compruebe si GHCR contiene la versión solicitada.
manifest unknown normalmente significa que falta una
etiqueta. Verifique la dirección de la imagen y la visibilidad del
paquete para ver si hay errores denied o la
conectividad del servidor a GHCR para ver si se han agotado los
tiempos de espera.
La consola no se abre
127.0.0.1 se refiere a la computadora que está
utilizando. Utilice el túnel SSH o un dominio HTTPS para una
instalación remota. Verifique primero
docker compose ps y
docker compose logs --tail=50 core. Si 8080 está
ocupado, cambie la asignación a 127.0.0.1:18080:8080 y
use el puerto de host 18080 en el navegador y el proxy inverso.
Restablecer una contraseña de administrador
Ejecute en el directorio Compose e ingrese la nueva contraseña en el indicador del terminal:
docker compose stop core
docker compose run --rm -it core admin reset-password
docker compose start core
El comando de recuperación adquiere el bloqueo del directorio de datos, así que detenga primero el puesto. Restablecer la contraseña revoca las sesiones del navegador y conserva los tokens de API, los buzones de correo y la cola.
Conecta la App oficial y Pro
La consola web gratuita y la entrega Bark/Pushover/Webhook funcionan de forma independiente. Para la aplicación oficial, siga Integración de aplicaciones para HTTPS y emparejamiento.
Las compilaciones de origen y el desarrollo local se tratan en guía de desarrollo.
Construcciones de código fuente y configuración de proceso
Para compilaciones de desarrollo, siga repositorio de origen README y guía de construcción para contribuyentes.
MAILWAKE_LISTEN por defecto es
127.0.0.1:8080 fuera de Docker; el contenedor utiliza
0.0.0.0:8080. MAILWAKE_DATA_DIR por
defecto es data; el contenedor utiliza
/data. MAILWAKE_RELAY_URL por defecto es
https://notify.mailwake.oritx.com. Mantenga el
directorio de datos completo, incluido secret.key,
durante los reinicios y las actualizaciones.
Cambiar el entorno de entrega push
Production y Sandbox utilizan identidades de emparejamiento independientes. Para cambiar entornos intencionalmente, detenga el puesto y ejecute el reinicio en su directorio de datos existente y la dirección guardada del servicio de envío de notificaciones anterior:
docker compose stop core
docker compose run --rm -it core admin reset-native-push
Escriba reset-native-push cuando se le solicite. El
comando revoca los emparejamientos en el antiguo servicio de envío
de notificaciones. Si no se puede acceder a ese servicio, mantenga
la configuración anterior y vuelva a intentarlo cuando esté
disponible. Después de que confirme que no hay objetivos sin
resolver, configure el nuevo MAILWAKE_RELAY_URL, vuelva
a crear el puesto con docker compose up -d y
emparejar de nuevo. El comando
preserva la identidad de firma del puesto y el historial del canal
ordinario.
Markdown · AGPL-3.0-only · Colaboradores de Mailwake