... Сервер

Dropbox DIY или своё облако на Ubuntu Server

ownCloud представляет собой Open Source решение для организации своего собственного dropbox-подобного хранилища файлов. Кроме, собственно, синхронизации файлов доступны так же дополнительные возможности, как то: синхронизация контактов, календарей (наличествует поддержка CalDAV) и задач, фотогалерея, проигрыватель аудио (с поддержкой протокола Ampache). Сервис работает в многопользовательском режиме, есть функционал общих папок.

Клиенты синхронизации доступны для Windows / Mac / Linux / Android, версия для iOS, по заверениям разработчиков, в финальной стадии. Наличествует достаточно интересная, но пока экспериментальная функция External Storage, позволяющая монтировать Dropbox и GDrive в папку с ownCloud.

Важной для меня функцией в Android-клиенте является Instant Upload, автоматически загружающий видео и фотографии в облако сразу после съёмки, аналогично клиенту Dropbox.

Проект достаточно сыроват, интерфейсы и стабильность работы клиентов оставляют желать лучшего, однако тот факт, что облако полностью управляемо и зашифровано перекрыл эти недостатки.

В качестве хостинга можно выбрать VDS или домашний сервер на антресоли.

Рассмотрим вариант с «домашним сервером».

В качестве железки выбран простенький неттоп, операционная система — Ubuntu Server 12.04, прямой ip и доменное имя. Храниться данные будут в зашифрованном LVM-разделе, доступ клиентов к серверу организован поверх SSL.

Для начала надо узнать последнюю версию ownCloud: заходим на сайт и смотрим http://owncloud.org/install/

Обновляем все обновления

apt-get upgrade

Устанавливаем необходимые пакеты:

apt-get install apache2 php5 php5-common php5-gd php5-sqlite curl libcurl3 libcurl3-dev php5-curl php5-intl php5-mcrypt php5-cli php5-ldap php5-sqlite libcurl4-openssl-dev php-apc php5-mysql ffmpeg

Устанавливаем утилиту Lynx для просмотра в консоли сайта и нахождения последней версии

apt-get-install lynx-cyr

Запускаем lynx

lynx https://owncloud.org/

Находим и скачиваем последнюю версию ownCloud:

wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2

(ссылку на последнюю версию можно взять непосредственно на сайте проекта) и распаковываем его:

tar -xjf owncloud_enterprise-5.0.12.tar.bz2

Копируем папку с ownCloud в корень web-сервера:

cp -r owncloud /var/www/

Создаём необходимые папки

mkdir /var/www/owncloud/data 

и меняем их владельца на www-data

chown -R www-data:www-data /var/www/owncloud/apps
chown -R www-data:www-data /var/www/owncloud/config
class="adm">chown -R www-data:www-data /var/www/owncloud/data

Редактируем /etc/apache2/sites-enabled/000-default.confПриводим к Виду:

     ServerAdmin webmaster@localhost
        DocumentRoot /var/www/www
        <Directory /var/www/www>
          AllowOverride All
        </Directory>

Включаем модули rewrite, headers и ssl в apache:

a2enmod rewrite && a2enmod headers && a2enmod ssl

Устанавливаем openssl:

apt-get install openssl

(вероятно, уже установлен)

генерируем самоподписанные сертификаты и размещаем их по соответствующим папкам:

openssl genrsa -des3 -out server.key 1024
mv server.key server.key.old
openssl rsa -in server.key.old -out server.key
openssl req -new -key server.key -out cert.csr
openssl x509 -req -days 365 -in cert.csr -signkey server.key -out cert.crt
mv cert.crt /etc/ssl/certs/
mv server.key /etc/ssl/private/

Редактируем etc/apache2/sites-available/default-ssl.conf

Указываем в SSLCertificateFile сгенерированный ранее сертификат /etc/ssl/certs/cert.crt, а в SSLCertificateKeyFile свой ключ /etc/ssl/private/server.key

Не забываем также указать имя домена и сайта.

Указываем апачу основной сайт:

a2ensite default-ssl

Рестартим апач:

service apache2 reload

На этом этап установки завершён, далее нужно будет настроить, собственно owncloud. Незабудте открыть порт 443 !!!.

Заходим по адресу yourip.address/owncloud, принимаем самоподписанный сертификат, проходим все необходимые шаги (точнее, всего один шаг) по настройке ownCloud. Попадаем в достаточно приятный веб-интерфейс.

Далее устанавливаем на компьютерах/смартфонах клиенты. Настройка клиента сводится к указанию адреса owncloud — yourip.address/owncloud, вводу имени и пароля и конечной папки на компьютере. Не забываем в адресе указать https, а не http.

На практике работает всё очень похоже с dropbox — заливаешь файл, он «расползается» по всем клиентам. Снимаешь на камеру Android-смартфона — изображение или видео через некоторое время попадает на компьютер. Особо хочу отметить, что Android-клиент поддерживает общесистемную функцию Easy Share Action, потому практически из любого приложения файл можно поместить в ownCloud.

ownCloud имеет встроенную поддержку WebDAV, потому на большинстве десктопных ОС можно обойтись вообще без клиентского приложения (в случае, если например неважна синхронизация, а нужен только доступ к файлам). Непосредственно на сервере данные хранятся в виде обычных файлов и, если включить фантазию и засучить рукава, можно совместить ownCloud с FTP/AFP/Samba-сервером, организовать автоматическое скачивание торрентов посредством rtorrent, а в корпоративных средах открываются поистине безграничные возможности организации доступа к файлам. В общем, всё ограничивается вашей фантазией.

Функционал легко расширяется с помощью дополнительных плагинов (Applications в терминологии ownCloud). Например, в случае физической невозможности зашифровать диск сервера можно воспользоваться плагином Encryption, тогда всё содержимое облако будет зашифровано встроенными средствами.

Объём хранилища ограничен только вашим жёстким диском. Облако в 2Tb — не вопрос. Поддержка версионности файлов наличествует. Один десктопный клиент, кстати, может подключаться к нескольким ownCloud облакам одновременно.

Скорость работы зависит в основном от ширины канала клиента и сервера. В моём случае почти все клиенты и сервер располагаются в пределах одного провайдера, потому видео с телефона заливается в облако очень быстро, несравнимо быстрее, чем в dropbox.

У данного решения с LVM-encrypted диском есть один недостаток — в случае перезагрузки мы потеряем удалённый доступ к серверу, поскольку при загрузке система будет просить парольную фразу для расшифровки диска на физической консоли. Так же из недостатков замечено, что при активной работе клиентов сервис апача на сервере неслабо отъедает процессорные ресурсы.

В итоге у нас получилось свой Dropbox с защищённым доступом и дамами, с клиентами под распространённые платформы. ownCloud, фактически, даёт возможность воспользоваться многими приятностями облачных технологий не требуя ответную жертву в виде приватности.

От себя всячески желаю проекту дальнейшего развития и процветания.

Источник: http://olejack.ru/605

Так же хочу добавить что максимальный размер файла нужно добавить в /etc/php5/apache2/php.ini. По умолчанию он равен 2 мб:

nano /etc/php5/apache2/php.ini

Ищем upload_max_filesize и post_max_size (Для поиска нажимаем Ctrl+W). Изменяем значение на ваше усмотрение, только помним, что максимальный размер не может быть больше объема свободной оперативной памяти.

В этом-же файле и прописывается и имя сервера. Надо прописать :ServerName localhost (понятно, что вместо localhost - свое имя

Ошибка , говорящая о том, что .htaccess не работает. Исправляется так:
Идем по пути - /etc/apache2/sites-enabled
Там создаем файл 000-default

В него пишемКод:

<Directory /var/www/>
AllowOverride All
Order allow,deny
Allow from all
</Directory>

И перезагружаем апач

Ошибка The "Strict-Transport-Security" HTTP header is not configured to at least "15768000" seconds. For enhanced security we recommend enabling HSTS as described in our security tips.
лечиться так, там-же в файле конфигурации сайта добавляеться еще один модуль

<IfModule mod_headers.c>
       Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
     </IfModule>