Install via Docker Compose

Drop the image into Coolify, CapRover, Dokploy, or your own compose stack.

compose.yml

Minimum viable setup — port 3000, one named volume, one env var:

services:
  maillayer:
    image: ghcr.io/mddanishyusuf/maillayer-pro:1
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - maillayer-data:/app/data
    environment:
      AUTH_SECRET: ${AUTH_SECRET}
      APP_URL: ${APP_URL:-}

volumes:
  maillayer-data:

Generate AUTH_SECRET once:

echo "AUTH_SECRET=$(openssl rand -base64 48)" > .env

Then start it:

docker compose up -d
AUTH_SECRET is optional
If you skip setting it, the container generates one at first boot and writes it to/app/data/.auth_secret in the volume. Subsequent restarts pick it up automatically. Just don't lose the volume.

Coolify

New Application → Docker Image → enter ghcr.io/mddanishyusuf/maillayer-pro:1. In the volumes tab map/app/data to a Coolify-managed volume. Set AUTH_SECRET in the environment variables tab.

CapRover / Dokploy

Both accept a docker-compose.yml directly. Paste the snippet above into their compose UI, set the env vars, deploy.

Tag pinning

  • :1 — pinned to major version 1 (recommended). Pulls patches and minors; never breaking changes.
  • :1.0.0 — exact version. Maximum stability, manual updates.
  • :latest — always the most recent release. Risky if breaking changes ship.

Reverse proxy / TLS

The container speaks plain HTTP on port 3000. Front it with Caddy, Traefik, or Coolify's built-in proxy. After HTTPS is up, set APP_URL in env vars so tracking links use the right scheme.