Вышел новый релиз персональной облачной платформы ownCloud 9.0.
Я уже писал про ownCloud раньше. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных.
Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon.
Changelog:
- Возможность добавлять комментарии и теги к файлам
- Новая система уведомлений
- (Федеративный режим) Автодополнение имен пользователей
- (Федеративный режим) Списки доверенных серверов
- Код для дополненией и основных файлов наконец подписан
- Добавили новую систему обновления
- Улучшения производительности при совместном доступе к каталогам
- Новое API для External Storage
- Различные улучшения системы безопасности
Немного иллюстраций
Веб-интерфейс с новыми функциями тегов и комментариев
Меню открытия доступа к файлу сторонним пользователям
Более подробно о федеративной системе объединения нескольких серверов.
Личные впечатления
Субъективные ощущения от использования сервиса самые положительные. Сейчас используется для хранения и синхронизации данных нашей лаборатории. Доступ к основному серверу через HTTPS. В моем варианте все работает на KVM виртуальной машине, основная система Debian, на виртуальной машине — Ubuntu 14.04 LTS. Это дает определенную гибкость в плане изоляции сервиса от основного сервера и упрощает клонирование, перенос и резервное копирование на случай проблем с обновлением. Проблемы, кстати, бывают. К сожалению, еще не тестировал свежий релиз — планирую сегодня попробовать развернуть на тестовой машине.
Основной набор сервисов, которые обеспечивают работу ownCloud у меня — nginx + php-fpm (версия PHP 5.5.9) + apcu (кэширование) + MariaDB (актуальный форк MySQL). Все работает очень быстро и без особых нареканий. Данные не терял ни разу. Основной плюс для нас — неограниченность доступного места для синхронизации — все упирается в HDD сервера. В случае физической гибели HDD — остается бэкап виртуальной машины с ownCloud, и все данные на клиентах никуда не исчезают. Будет выглядеть просто как обрыв связи.
Конфигурационные файлы
Nginx
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name example.net;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.net;
ssl_certificate /etc/ssl/nginx/bundle.crt;
ssl_certificate_key /etc/ssl/nginx/private.key;
ssl_dhparam /etc/ssl/nginx/dh2048.pem;
ssl_stapling on;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:2m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2:!RC4;
#ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; f$
# Path to the root of your installation
root /var/www;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ /index.php;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# 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;
}
Настройки php дефолтные.
Официальная инструкция по обновлению
https://owncloud.org/blog/time-to-upgrade-to-owncloud-9-0/