Mailu / Mailu

Insular email distribution - mail server as Docker images
https://mailu.io
Other
5.93k stars 838 forks source link

Webmail 404 #535

Closed jecjackal closed 6 years ago

jecjackal commented 6 years ago

Hi Guys,

I followed the Docker Compose setup instructions, and I cannot access http://localhost/webmail. My goal is to eventually run this email server behind my own reverse proxy, but for now I am trying to stand it up under localhost. Would someone mind helping me out?

When I make the request to http://localhost/webmail, the request makes it to the front container, but the webmail container cannot find /webmail. Here is a log from the webmail container from one of my attempts:

172.20.0.7 - - [25/Jul/2018:16:08:51 +0000] "GET /webmail/ HTTP/1.0" 404 459 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"

Here is my .env file:

# Mailu main configuration file
#
# Most configuration variables can be modified through the Web interface,
# these few settings must however be configured before starting the mail
# server and require a restart upon change.

###################################
# Common configuration variables
###################################

# Set this to the path where Mailu data and configuration is stored
ROOT=/Users/jcarroll/Docker/mailu/

# Mailu version to run (1.0, 1.1, etc. or master)
VERSION=1.5

# Set to a randomly generated 16 bytes string
SECRET_KEY=ChangeMeChangeMe

# Address where listening ports should bind
BIND_ADDRESS4=0.0.0.0
BIND_ADDRESS6=::1

# Main mail domain
DOMAIN=localhost

# Hostnames for this server, separated with comas
HOSTNAMES=localhost

# Postmaster local part (will append the main mail domain)
POSTMASTER=admin

# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail)
TLS_FLAVOR=mail

# Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour

# Opt-out of statistics, replace with "True" to opt out
DISABLE_STATISTICS=False

###################################
# Optional features
###################################

# Expose the admin interface (value: true, false)
ADMIN=true

# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=rainloop

# Dav server implementation (value: radicale, none)
WEBDAV=none

# Antivirus solution (value: clamav, none)
ANTIVIRUS=none

###################################
# Mail settings
###################################

# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000

# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.16.0.0/12

# Will relay all outgoing mails if configured
RELAYHOST=

# Fetchmail delay
FETCHMAIL_DELAY=600

# Recipient delimiter, character used to delimiter localpart from custom address part
# e.g. localpart+custom@domain;tld
RECIPIENT_DELIMITER=+

# DMARC rua and ruf email
DMARC_RUA=admin
DMARC_RUF=admin

# Weclome email, enable and set a topic and body if you wish to send welcome
# emails to all users.
WELCOME=false
WELCOME_SUBJECT=Welcome to your new email account
WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly!

###################################
# Web settings
###################################

# Path to the admin interface if enabled
WEB_ADMIN=/admin

# Path to the webmail if enabled
WEB_WEBMAIL=/webmail

# Website name
SITENAME=Mailu

# Linked Website URL
WEBSITE=https://mailu.io

###################################
# Advanced settings
###################################

# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu

# Default password scheme used for newly created accounts and changed passwords
# (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
PASSWORD_SCHEME=SHA512-CRYPT

here is my docker compose file. I made a change to use the no SSL nginx, as this will already be sitting behind my reverse proxy, which provides TLS.

version: '2'
services:
  front:
    image: mailu/nginx-no-https
    restart: always
    env_file: .env
    ports:
    - "$BIND_ADDRESS4:80:80"
    - "$BIND_ADDRESS4:443:443"
    - "$BIND_ADDRESS4:110:110"
    - "$BIND_ADDRESS4:143:143"
    - "$BIND_ADDRESS4:993:993"
    - "$BIND_ADDRESS4:995:995"
    - "$BIND_ADDRESS4:25:25"
    - "$BIND_ADDRESS4:465:465"
    - "$BIND_ADDRESS4:587:587"
    # - "$BIND_ADDRESS6:80:80"
    # - "$BIND_ADDRESS6:443:443"
    # - "$BIND_ADDRESS6:110:110"
    # - "$BIND_ADDRESS6:143:143"
    # - "$BIND_ADDRESS6:993:993"
    # - "$BIND_ADDRESS6:995:995"
    # - "$BIND_ADDRESS6:25:25"
    # - "$BIND_ADDRESS6:465:465"
    # - "$BIND_ADDRESS6:587:587"
    volumes:
      - "$ROOT/certs:/certs"

  redis:
    image: redis:alpine
    restart: always
    volumes:
      - "$ROOT/redis:/data"

  imap:
    image: mailu/dovecot:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/data:/data"
      - "$ROOT/mail:/mail"
      - "$ROOT/overrides:/overrides"
    depends_on:
      - front

  smtp:
    image: mailu/postfix:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/data:/data"
      - "$ROOT/overrides:/overrides"
    depends_on:
      - front

  antispam:
    image: mailu/rspamd:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/filter:/var/lib/rspamd"
      - "$ROOT/dkim:/dkim"
      - "$ROOT/overrides/rspamd:/etc/rspamd/override.d"
    depends_on:
      - front

  antivirus:
    image: mailu/$ANTIVIRUS:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/filter:/data"

  webdav:
    image: mailu/$WEBDAV:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/dav:/data"

  admin:
    image: mailu/admin:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/data:/data"
      - "$ROOT/dkim:/dkim"
      - /var/run/docker.sock:/var/run/docker.sock:ro
    depends_on:
      - redis

  webmail:
    image: "mailu/$WEBMAIL:$VERSION"
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/webmail:/data"

  fetchmail:
    image: mailu/fetchmail:$VERSION
    restart: always
    env_file: .env
    volumes:
      - "$ROOT/data:/data"

Thank you for the help,

Jec

kaiyou commented 6 years ago

The nginx-no-https has been deprecated since 1.5, you should only use the nginx front container which supports multiple TLS flavors. If you wish to setup your own reverse proxy and TLS endpoint, you could use the notls flavor which disables TLS altogether.

jecjackal commented 6 years ago

That was it. Thank you so much @kaiyou.