diff --git a/conf/nginx.conf b/conf/nginx.conf index eb9a6335..df689722 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -26,27 +26,53 @@ server { root $ROOT; index index.html index.htm; - # Roundcube Webmail configuration. - rewrite ^/mail$ /mail/ redirect; - rewrite ^/mail/$ /mail/index.php; - location /mail/ { + # ownCloud configuration + # TODO: we should support owncloud to be loaded from www root, but for now we dont :-) + client_max_body_size 10G; # set max upload size + fastcgi_buffers 64 4K; + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + error_page 403 /owncloud/core/templates/403.php; + error_page 404 /owncloud/core/templates/404.php; + + rewrite ^/caldav(.*)$ /owncloud/remote.php/caldav$1 redirect; + rewrite ^/carddav(.*)$ /owncloud/remote.php/carddav$1 redirect; + rewrite ^/webdav(.*)$ /owncloud/remote.php/webdav$1 redirect; + rewrite ^/owncloud$ /owncloud/ redirect; + rewrite ^/owncloud/$ /owncloud/index.php; + + location /owncloud/ { index index.php; - alias /usr/local/lib/roundcubemail/; + alias /usr/local/lib/owncloud/; } - location ~ /mail/config/.* { - # A ~-style location is needed to give this precedence over the next block. - return 403; - } - location ~ /mail/.*\.php { + + location ~ /owncloud/.*\.php { include fastcgi_params; - fastcgi_split_path_info ^/mail(/.*)()$; + fastcgi_split_path_info ^/owncloud(/.*)()$; fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME /usr/local/lib/roundcubemail/$fastcgi_script_name; + fastcgi_param SCRIPT_FILENAME /usr/local/lib/owncloud/$fastcgi_script_name; fastcgi_pass unix:/tmp/php-fastcgi.www-data.sock; client_max_body_size 20M; } + location ~ ^/(data|config|\.ht|db_structure\.xml|README) { + deny all; + } + + # Optional: set long EXPIRES header on static assets + location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { + expires 30d; + # Optional: Don't log access to assets + access_log off; + } + # Webfinger configuration. + # TODO: fix this for owncloud: http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html location = /.well-known/webfinger { include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/local/bin/mailinabox-webfinger.php; diff --git a/setup/owncloud.sh b/setup/owncloud.sh new file mode 100644 index 00000000..99a5b722 --- /dev/null +++ b/setup/owncloud.sh @@ -0,0 +1,46 @@ +# Owncloud +########################## + +# TODO: Write documentation on what we're doing here :-) + +source setup/functions.sh # load our functions +source /etc/mailinabox.conf # load global vars + +apt_install \ + dbconfig-common \ + php5-cli php5-sqlite php5-gd php5-curl php5-common php5-cgi sqlite3 php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser \ + php5 php5-dev php5-gd php5-fpm memcached php5-memcache unzip + +apt-get purge -qq -y owncloud* + +# Install ownCloud from source if it is not already present +# TODO: Check version? +if [ ! -d /usr/local/lib/owncloud ]; then + rm -f /tmp/owncloud.zip + wget -qO /tmp/owncloud.zip https://download.owncloud.org/community/owncloud-7.0.1.zip + unzip /tmp/owncloud.zip -d /usr/local/lib + rm -f /tmp/owncloud.zip +fi + +# Create a configuration file. +# TODO: + +# Set permissions +mkdir -p $STORAGE_ROOT/owncloud +chown -R www-data.www-data $STORAGE_ROOT/owncloud /usr/local/lib/owncloud + +# Download and install the mail app +if [ ! -d /usr/local/lib/owncloud/apps/mail ]; then + rm -f /tmp/owncloud_mail.zip + wget -qO /tmp/owncloud_mail.zip https://github.com/owncloud/mail/archive/master.zip + unzip /tmp/owncloud_mail.zip -d /usr/local/lib/owncloud/apps + mv /usr/local/lib/owncloud/apps/mail-master /usr/local/lib/owncloud/apps/mail + rm -f /tmp/owncloud.zip +fi + +# Currently the mail app dosnt ship with the dependencies, so we need to install them +cd /usr/local/lib/owncloud/apps/mail +curl -sS https://getcomposer.org/installer | php +php composer.phar install + +# TODO: enable mail app in ownCloud config? diff --git a/setup/start.sh b/setup/start.sh index 0b06c9ea..39987401 100755 --- a/setup/start.sh +++ b/setup/start.sh @@ -273,7 +273,7 @@ EOF . setup/dkim.sh . setup/spamassassin.sh . setup/web.sh -. setup/webmail.sh +. setup/owncloud.sh . setup/zpush.sh . setup/management.sh