You've already forked Mailu
mirror of
https://github.com/Mailu/Mailu.git
synced 2025-08-10 22:31:47 +02:00
Setup a roundcube Webmail
This commit is contained in:
23
Dockerfile
23
Dockerfile
@@ -1,25 +1,40 @@
|
|||||||
FROM python:3
|
FROM python:3
|
||||||
|
|
||||||
|
# Install required system packages
|
||||||
RUN export DEBIAN_FRONTEND=noninteractive \
|
RUN export DEBIAN_FRONTEND=noninteractive \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
postfix dovecot-imapd dovecot-sqlite dovecot-lmtpd \
|
postfix dovecot-imapd dovecot-sqlite dovecot-lmtpd \
|
||||||
dovecot-sieve dovecot-managesieved \
|
dovecot-sieve dovecot-managesieved \
|
||||||
dovecot-antispam spamassassin spamc clamav \
|
dovecot-antispam spamassassin spamc clamav \
|
||||||
|
php5-fpm php5-mysql php5-imap php5-sqlite \
|
||||||
supervisor rsyslog nginx \
|
supervisor rsyslog nginx \
|
||||||
&& apt-get clean
|
&& apt-get clean
|
||||||
|
|
||||||
# When installed non-interactively, the file does not get copied to the
|
# Install the Webmail from source
|
||||||
# postfix chroot, thus causing smtpd to fail.
|
ENV ROUNDCUBE_VERSION 1.1.4-complete
|
||||||
RUN cp /etc/services /var/spool/postfix/etc/
|
RUN curl -L -O https://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.1.4/roundcubemail-${ROUNDCUBE_VERSION}.tar.gz \
|
||||||
|
&& tar -xf roundcubemail-${ROUNDCUBE_VERSION}.tar.gz \
|
||||||
|
&& rm -f roundcubemail-${ROUNDCUBE_VERSION}.tar.gz \
|
||||||
|
&& mv roundcubemail-* /webmail
|
||||||
|
|
||||||
# Install the Web admin panel
|
# Install the Web admin panel
|
||||||
COPY admin /admin
|
COPY admin /admin
|
||||||
RUN pip install -r /admin/requirements.txt
|
RUN pip install -r /admin/requirements.txt
|
||||||
|
|
||||||
|
# Configure the webmail
|
||||||
|
RUN cd /webmail \
|
||||||
|
&& rm -rf CHANGELOG INSTALL LICENSE README.md UPDGRADING composer.json-dist temp logs \
|
||||||
|
&& ln -s /data/logs/webmail logs \
|
||||||
|
&& ln -s /data/webmail/temp temp \
|
||||||
|
&& ln -s /etc/roundcube.inc.php config/config.inc.php
|
||||||
|
|
||||||
# Load the configuration
|
# Load the configuration
|
||||||
COPY config /etc/
|
COPY config /etc/
|
||||||
|
|
||||||
|
# Copy the entrypoint
|
||||||
|
COPY start.sh /start.sh
|
||||||
|
|
||||||
# Explicitely specify the configuration file to avoid problems when
|
# Explicitely specify the configuration file to avoid problems when
|
||||||
# the default configuration path changes.
|
# the default configuration path changes.
|
||||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
CMD "/start.sh"
|
||||||
|
@@ -18,6 +18,30 @@ http {
|
|||||||
|
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
|
listen 443 ssl;
|
||||||
|
|
||||||
|
ssl_protocols TLSv1.1 TLSv1.2;
|
||||||
|
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
ssl_session_timeout 5m;
|
||||||
|
ssl_session_cache shared:SSL:50m;
|
||||||
|
ssl_certificate /data/ssl/cert.pem;
|
||||||
|
ssl_certificate_key /data/ssl/key.pem;
|
||||||
|
|
||||||
|
if ($scheme = http) {
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
root /webmail;
|
||||||
|
index index.php;
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
try_files $uri =404;
|
||||||
|
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
location /admin {
|
location /admin {
|
||||||
include uwsgi_params;
|
include uwsgi_params;
|
||||||
|
18
config/roundcube.inc.php
Normal file
18
config/roundcube.inc.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$config = array();
|
||||||
|
|
||||||
|
$config['db_dsnw'] = 'sqlite:////data/webmail/roundcube.db';
|
||||||
|
$config['default_host'] = 'localhost';
|
||||||
|
$config['smtp_server'] = 'localhost';
|
||||||
|
$config['smtp_port'] = 25;
|
||||||
|
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';
|
||||||
|
|
||||||
|
// List of active plugins (in plugins/ directory)
|
||||||
|
$config['plugins'] = array(
|
||||||
|
'archive',
|
||||||
|
'zipdownload',
|
||||||
|
);
|
||||||
|
|
||||||
|
// skin name: folder from skins/
|
||||||
|
$config['skin'] = 'larry';
|
@@ -19,3 +19,6 @@ command = uwsgi --yaml /etc/uwsgi/apps-enabled/freeposte.yml
|
|||||||
|
|
||||||
[program:nginx]
|
[program:nginx]
|
||||||
command = nginx -g 'daemon off;'
|
command = nginx -g 'daemon off;'
|
||||||
|
|
||||||
|
[program:webmail]
|
||||||
|
command = php5-fpm -F
|
||||||
|
25
start.sh
Executable file
25
start.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# When postfix is installed non-interactively, the file does not get copied to
|
||||||
|
# the postfix chroot, thus causing smtpd to fail, fix this at runtime
|
||||||
|
cp /etc/services /var/spool/postfix/etc/
|
||||||
|
|
||||||
|
# Fix permissions inside data and create necessary directories if not already
|
||||||
|
# present
|
||||||
|
mkdir -p \
|
||||||
|
/data/mail \
|
||||||
|
/data/webmail/tmp \
|
||||||
|
/data/logs \
|
||||||
|
/data/ssl
|
||||||
|
|
||||||
|
chown -R mail:mail /data/mail
|
||||||
|
chown -R www-data:www-data /data/webmail /data/logs/webmail
|
||||||
|
|
||||||
|
# Copy the system snakeoil certificate if none is provided
|
||||||
|
if [ ! -f /data/ssl/cert.pem ]; then
|
||||||
|
cp /etc/ssl/private/ssl-cert-snakeoil.key /data/ssl/key.pem
|
||||||
|
cp /etc/ssl/certs/ssl-cert-snakeoil.pem /data/ssl/cert.pem
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Finally run the server
|
||||||
|
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
Reference in New Issue
Block a user