Seafile где хранятся файлы
Visit our download page, download the latest server package.
Choose one of: - Generic Linux - Server for Raspberry Pi
Click the tarball link and save it.
Running Seafile Server¶
Before Running¶
Since Seafile uses persistent connections between client and server, you should increase Linux file descriptors by ulimit if you have a large number of clients before start Seafile, like:
Starting Seafile Server and Seahub Website¶
Note: The first time you start Seahub, the script is going to prompt you to create an admin account for your Seafile server.
After starting the services, you may open a web browser and type in
you will be redirected to the Login page. Just enter the admin username and password.
Congratulations! Now you have successfully setup your private Seafile server.
Run Seahub on another port¶
You can assign the port of Seahub by setting the conf/gunicorn.conf .
- modify the value of SERVICE_URL in the file ccnet.conf (or seahub_settings.py if you use 9.0.0+ version), like this: (assume your ip or domain is 192.168.1.100). You can also modify SERVICE_URL via web UI in "System Admin->Settings". (Warning: if you set the value both via Web UI and ccnet.conf, the setting via Web UI will take precedence.)
See Seafile Server Configuration Manual for more details about ccnet.conf .
Seafile — это личное хранилище для хранения данных в стиле Dropbox. Seafile — замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища. Не очень сложен в установке и настройке. Бесплатен.
Облачные хранилища данных сейчас широко распространены и используются повсеместно для корпоративных и личных нужд. Бесплатные варианты для домашнего использования тоже есть.
Известные облачные "диски" с возможностью бесплатного хранения и поддержкой русского языка:
Restore the databases¶
Now with the latest valid database backup files at hand, you can restore them.
Restore from backup¶
Now supposed your primary seafile server is broken, you're switching to a new machine. Using the backup data to restore your Seafile instance:
- Copy /backup/data/haiwen to the new machine. Let's assume the seafile deployment location new machine is also /data/haiwen .
- Restore the database.
- Since database and data are backed up separately, they may become a little inconsistent with each other. To correct the potential inconsistency, run seaf-fsck tool to check data integrity on the new machine. See seaf-fsck documentation.
Программа "сборки мусора"
Seafile использует технологию дедупликации хранилища, чтобы уменьшить использование хранилища. Базовые блоки данных не будут удалены сразу после удаления файла или библиотеки. В результате количество неиспользуемых блоков данных на сервере Seafile увеличится.
Чтобы освободить пространство памяти, занимаемое неиспользованными блоками, вы должны запустить программу "сборки мусора" для очистки неиспользуемых блоков на вашем сервере.
Чтобы увидеть, сколько мусора можно собрать, фактически не удаляя мусор, используйте опцию пробного запуска:
Чтобы фактически удалить блоки мусора, запустите без опции --dry-run:
Ниже приведён скрипт для очистки мусора, который можно поставить на cron:
If you setup seafile server according to our manual, you should have a directory layout like:
All your library data is stored under the 'haiwen' directory.
Seafile also stores some important metadata data in a few databases. The names and locations of these databases depends on which database software you use.
- ccnet/PeerMgr/usermgr.db: contains user information
- ccnet/GroupMgr/groupmgr.db: contains group information
- seafile-data/seafile.db: contains library metadata
- seahub.db: contains tables used by the web front end (seahub)
For MySQL, the databases are created by the administrator, so the names can be different from one deployment to another. There are 3 databases:
- ccnet-db: contains user and group information
- seafile-db: contains library metadata
- seahub-db: contains tables used by the web front end (seahub)
Настройка Seafile Server и базы данных
Запустите скрипт установки и настройки БД:
Опция | Значение |
---|---|
[ server name ] | |
[ This server's ip or domain ] | |
[ default "/opt/seafile/seafile-data" ] | "место хранения файлов, например /srv/seafile-data" |
[ default "8082" ] | |
[ 1 or 2 ] | "1 (создать новые БД)" |
[ default "localhost" ] | |
[ default "3306" ] | |
[ root password ] | |
[ default "seafile" ] | |
[ password for seafile ] | |
[ default "ccnet-db" ] | |
[ default "seafile-db" ] | |
[ default "seahub-db" ] |
Если ошибок не возникло — значит все прошло успешно. Можно запустить файловое хранилище seafile с созданной конфигурацией:
И веб-интерфейс, к которому можно подключиться через браузер:
При первом запуске будет необходимо создать административный аккаунт. Еще я поменял стандартный порт на 8081, вместо 8000. В файле /opt/seafile/conf/gunicorn.conf указал bind = "0.0.0.0:8081".
WebDAV я повесил на 8083 порт, в файле /opt/seafile/conf/seafdav.conf — port = 8083.
Установка зависимостей
Для начала обновите локальную базу пакетов:
Установите необходимые для работы хранилища пакеты python:
Seafile - собственный аналог Dropbox на Linux
Создание собственного сервиса хранения данных под управлением Linux.
Первым делом узнайте свой внешний IP-адрес: https://2ip.ru/ и локальный: sudo ifconfig | grep "inet addr" или ip addr show.
Если хотим на файл организовать внешнюю ссылку, начните с настройки роутера. Как это сделать писал в предыдущей теме, да и в ролике это озвучено.
Установка Seafile Server: Первая команда в терминале во всех мануалах выглядит следующим образом:
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging sqlite3
У меня Linux Mint 19.1 и пришлось применить для своей системы немного другую команду:
$ sudo apt-get install python-setuptools python-simplejson sqlite3 python-pil
В домашнем каталоге создаём пустую директорию seafile:
$ mkdir seafile
Далее я шёл по следующему пути: /home/oleglav/seafile/seafile-server-6.3.4 и прямо в этом каталоге открыл терминал. Запускаем инсталляцию:
$ ./setup-seafile.sh
1. По ходу придумаем адрес сервера: oleglavserver
2. ip or domain: А вот здесь думайте сами, если Вы будите использовать только локальную сеть - пишем локальный ip-адрес машины. Если будите загружать файлы в интернет и делиться ими в интернете с другими пользователями - пишем внешний ip-адрес.
3. Далее нас попросят указать, где будут храниться данные, по умолчанию это директория seafile-data, которая находиться внутри папки seafile - Нажал Enter (согласился с настройками по умолчанию).
4. Рекомендованный порт сервера - ничего не меняем, нажимаем клавишу ввода.
5. Ещё раз Enter.
Из терминала не выходим. Запускаем систему:
$ ./seafile.sh start
$ ./seahub.sh start
admin password: Пароль
Повторить пароль и всё!
Вбиваем данные которые мы только, что зарегестрировали. Далее настройка аккаунта, всё озвучил в предыдущей теме, когда ставили Seafile на Windows.
Если Вам не совсем удобно пользоваться веб-интерфейсом, установите Seafile-клиент:
$ sudo add-apt-repository ppa:seafile/seafile-client
$ sudo apt-get update
$ sudo apt-get install seafile-gui
Меню --> Интернет --> Seafile --> Запускаем.
Заполняем данные в клиенте:
Имя: эл.адрес почты
Нажимаем кнопку "Логин".
Подводим итоги: мы организовали локальную сеть между совершенно разными клиентами. Всё, что вы закинете в облачное хранилище будет автоматически синхронизироваться на дисках других подключенных в сеть устройствах. А так же можем создать внешнюю ссылку, хотя файл находится на жёстком диске компьютера.
Другие похожие сервисы: Nextcloud — набор клиент-серверных программ для создания и использования облачного хранилища. По функционалу похож на Dropbox. Nextcloud можно установить на физический сервер.
ownCloud — это свободное и открытое веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке».
Seafile - хранилище файлов, которая организует их в библиотеки и синхронизирует на различных устройствах. Seafile обладает потрясающей производительностью в синхронизации файлов, позволяет настроить различные правила доступа к разным файлам. Подключаться к хранилищу можно с разных клиентов, которые доступны на Linux, macOS, Windows, iOS и Android.
Плюсы и минусы стороннего облачного хранилища
- Плюсы
- Оно есть, работает, бесплатно. Жирный плюс.
- Можно зарегистрировать несколько аккаунтов.
- Есть разные клиенты для компьютера, телефона, браузера, сетевого диска.
- Не требует затрат на обслуживание, за нас работают другие.
- Не занимает место в доме.
- Минусы
- Мало места. Реально мало, у меня уже просто фоток больше 50 Гб. О хранении бэкапов, видео или игр уже речи не идёт.
- Ограничение на размер файла.
- Нет гарантии, что бесплатное не станет платным.
- Нет гарантии, что бесплатные гигабайты не урежут.
- Нет гарантии, что проект не закроют.
- Безопасность, ваши файлы лежат не у вас. Возможны утечки данных. Возможно нецелевое использование ваших файлов.
- Нужен Интернет. Интернет отключили - облачное хранилище перестало работать.
- Ширина канала ограничивает скорость закачки.
- Могут взломать через веб-клиент.
Возможности Seafile
- Различные настройки.
- Управление аккаунтами.
- Низкая требовательность к ресурсам.
- Поддержка версионности файлов.
- Плагины.
- Кроссплатформенность и синхронизация файлов.
- Мобильный клиент.
- Виртуальный диск.
- Ссылки на файлы и каталоги, поддержка паролей.
- Блокировка файла.
- Онлайн редактирование и совместный доступ.
- Лог аудита, история изменений.
- Возможность использования в организации
- Бесплатная PRO версия для 3 аккаунтов.
- Безопасность: шифрование, двухфакторная авторизация.
- Интеграция с LDAP, Shibboleth, OAuth.
- Интеграция с LibreOffice Online
Возможностей с каждой версией всё больше. Оценить интерфейс и попробовать поработать в Seafile можно прямо в демонстрационном облаке:
Для своей работы Seafile использует базу данных (SQLite, MySQL) и вебсервер (Apache, Nginx).
Для больших нагрузок можно использовать кластерные системы с балансировщиками, распределёнными хранилищами и кеширующими серверами БД типа memcached.
У меня в самой обычной конфигурации скорость загрузки достигала 7 Мб/с. По замерам разработчиков скорость может достигать 10 Мб/с в обычной конфигурации.
Seafile поддерживает синхронизацию файлов. Можно включить синхронизацию на телефоне с альбомом камеры.
Seafile поддерживает шифрование библиотек на уровне хранилища. Шифрование осуществляется на стороне клиента с помощью ключа, связанного с паролем пользователя. Расшифровать данные можно на клиенте. В этом случае админ не сможет восстановить зашифрованные библиотеки в случае их удаления или повреждения.
Backup steps¶
- Optional: Stop Seafile server first if you're using SQLite as database.
- Backup the databases;
- Backup the seafile data directory;
Какое домашнее хранилище выбрать?
Итак, вы решили, что вам нужно домашнее хранилище. Можно купить готовое, в комплекте уже есть ПО с некоторым функционалом. Можно поднять на ОС Linux OwnCloud или Seafile — это ПО для разворачивания хранилища, для него вам нужно ещё выделить место на сервере, хранилище или домашнем компьютере. За надёжность и стоимость железа вы отвечаете сами.
Почему Seafile ? Продукт основан на идеях Git и Dropbox. Для меня же главным была низкая требовательность Seafile к ресурсам. За работу с файлами отвечают написанные на си приложения. Есть даже сервер для Raspberry Pi! Я его не использовал, но он может значительно снизить затраты для построения домашнего или корпоративного облака с нуля. Seafile стабилен, так говорят, хотя я слышал и отрицательные отзывы.
Seafile FSCK
На стороне сервера Seafile хранит файлы в библиотеках во внутреннем формате. Seafile имеет свое собственное представление каталогов и файлов (аналогично Git).
При установке по умолчанию эти внутренние объекты хранятся непосредственно в файловой системе сервера (например, Ext4, NTFS). Но большинство файловых систем не обеспечивают целостность содержимого файла после жесткого отключения или сбоя системы. Таким образом, если новые внутренние объекты Seafile записываются при сбое системы, они могут быть повреждены после перезагрузки системы. Это сделает часть соответствующей библиотеки недоступной.
Инструмент seaf-fsck принимает следующие аргументы:
Для seaf-fsck есть три режима работы:
- проверка целостности библиотек
- восстановление поврежденных библиотек
- экспорт библиотек
Более подробно можно прочитать в документации.
Настройка smtp для отправки почты
В файле /opt/seafile/conf/seahub_settings.py надо указать следующие настройки (я использую Gmail):
Backing up Seafile library data¶
The data files are all stored in the /data/haiwen directory, so just back up the whole directory. You can directly copy the whole directory to the backup destination, or you can use rsync to do incremental backup.
To directly copy the whole data directory,
This produces a separate copy of the data directory each time. You can delete older backup copies after a new one is completed.
If you have a lot of data, copying the whole data directory would take long. You can use rsync to do incremental backup.
This command backup the data directory to /backup/data/haiwen .
Backup Order: Database First or Data Directory First¶
- backup data directory first, SQL later: When you're backing up data directory, some new objects are written and they're not backed up. Those new objects may be referenced in SQL database. So when you restore, some records in the database cannot find its object. So the library is corrupted.
- backup SQL first, data directory later: Since you backup database first, all records in the database have valid objects to be referenced. So the libraries won't be corrupted. But new objects written to storage when you're backing up are not referenced by database records. So some libraries are out of date. When you restore, some new data are lost.
The second sequence is better in the sense that it avoids library corruption. Like other backup solutions, some new data can be lost in recovery. There is always a backup window. However, if your storage backup mechanism can finish quickly enough, using the first sequence can retain more data.
We assume your seafile data directory is in /data/haiwen . And you want to backup to /backup directory. The /backup can be an NFS or Windows share mount exported by another machine, or just an external disk. You can create a layout similar to the following in /backup directory:
Компоненты сервера Seafile
Сервер Seafile состоит из следующих компонентов:
Плюсы и минусы домашнего хранилища
- Плюсы
- Оно есть, работает, бесплатно.
- Нет нужды заводить много аккаунтов для расширения.
- Большой объём. Сколько сделаешь, столько и будет.
- Есть разные клиенты для компьютера, телефона, браузера, сетевого диска.
- Ограничения на размер файла теперь регулируются лишь технологиями.
- Бесплатное использование, гарантия.
- Услуги никто не урежет.
- Проект не закроется.
- Безопасность и конфиденциальность.
- При использовании из дома не зависит от наличия Интернет и ширины канала. Интернет нужен только для доступа извне.
- Минусы
- Нужно покупать сервер с дисками или хранилище.
- Требует затрат на обслуживание, железо, электричество.
- Занимает место дома.
- Могут взломать через веб-клиент.
- Защита от сбоя ниже из-за отсутствия резервных источников электричества и домашней среды эксплуатации.
Если вы готовы заботиться о железе, вкладывать в него средства и время, а взамен получить много бесплатного места - ставьте собственное домашнее хранилище.
Setting Up Seafile Server¶
Prerequisites¶
The Seafile server package requires the following packages have been installed in your system
Setup¶
If some of the prerequisites are not installed, the Seafile initialization script will ask you to install them.
The script will guide you through the settings of various configuration options.
Seafile configuration options
Option | Description | Note |
---|---|---|
server name | Name of this Seafile server | 3-15 characters, only English letters, digits and underscore ('_') are allowed |
server ip or domain | The IP address or domain name used by this server | Seafile client program will access the server with this address |
Seafile data dir | Seafile stores your data in this directory. By default it'll be placed in the current directory. | The size of this directory will increase as you put more and more data into Seafile. Please select a disk partition with enough free space. |
fileserver port | The TCP port used by Seafile fileserver | Default is 8082. If it's been used by other service, you can set it to another port. |
Now you should have the following directory layout:
The folder seafile-server-latest is a symbolic link to the current Seafile server folder. When later you upgrade to a new version, the upgrade scripts would update this link to keep it always point to the latest Seafile server folder.
Загрузка последней стабильной версии
Устанавливать будем в папку /opt/seafile:
Скачайте с помощью утилиты wget архив с последней версией продукта, последняя версия во время написания инструкции - 7.0.5, актуальную версию можно посмотреть на официальном сайте:
Автозагрузка Seafile (systemd)
Более подробно с сервисами systemd можно познакомиться тут. Файлы юнитов.
Перегружаем конфигурацию systemd:
Останавливаем сервер Seafile:
Резервная копия данных
Восстанавливать в обратном порядке. После восстановления желательно запустить seaf-fsck для проверки данных.
Deploying and Directory Layout¶
NOTE: If you place the Seafile data directory in external storage, such as NFS, CIFS mount, you should not use SQLite as the database, but use MySQL instead.
Supposed you've downloaded seafile-server_8.0.* into your home directory. We suggest you to use the following layout for your deployment:
Now you should have the following directory layout
Benefits of this layout are
- We can place all the config files for Seafile server inside "/opt/seafile/conf" directory, making it easier to manage.
- When you upgrade to a new version of Seafile, you can simply untar the latest package into "/opt/seafile" directory. In this way you can reuse the existing config files in "/opt/seafile/conf" directory and don't need to configure again.
Настройка Nginx
У меня получился вот такой конфигурационный файл хоста:
Не забудьте заменить host_name на реальный домен.
В файле /opt/seafile/conf/ccnet.conf необходимо также указать домен:
И добавить строчку в файл /opt/seafile/conf/seahub_settings.py:
Backing up Databases¶
It's recommended to backup the database to a separate file each time. Don't overwrite older database backups for at least a week.
MySQL
Assume your database names are ccnet-db , seafile-db and seahub-db . mysqldump automatically locks the tables so you don't need to stop Seafile server when backing up MySQL databases. Since the database tables are usually very small, it won't take long to dump.
SQLite
You need to stop Seafile server first before backing up SQLite database.
Веб интерфейс Seafile
Расскажу только об основных моментах.
Веб интерфейс прост. Поддержка русского языка имеется. Имеется возможность кастомизации — замена логотипа, фоновой картинки, собственные CSS стили.
Внутри можно создавать библиотеки, в библиотеках папки и файлы.Библиотеки можно добавлять в группы для совместного доступа.
Как вам, если мы организуем на жёстком диске собственное облачное хранилище с доступом к нему с различных клиентов: Windows, Android, MacOS, Linux, iOS. При этом дисковые квоты не заданы (размер диска не ограничен) и пользователи, могут загружать файлы без ограничений (размер файла не ограничен). Не нужно платить за хранение данных, как в Dropbox. А так же прямо с жёсткого диска своего компьютера, сможем поделиться файлом с любым пользователем интернета.
Всё скачали. Первым устанавливаем Python. Потом создаём на диске (C:) пустую папку, например, SeafileProgram. Извлекаем файлы из архива seafile-server.tar.gz. После распаковки архива, открываем папку seafile-server_6.0.7_win32. Видим там ещё одну папку seafile-server-6.0.7, вот её и вставляем в папку SeafileProgram, что на диске (C:).
Я работал в Windows 8.1. В проводнике переходим на Этот компьютер --> Свойства --> Дополнительные параметры системы --> Переменные среды --> В окне "Системные переменные" тыкаем на Path --> Изменить. --> В окне "Значение переменной" В начале строки пишем C:\Python27; или в конце строки ;C:\Python27 (я поставил в начале строки) --> Ok --> Ok --> Ok.
Переходим по пути C:\SeafileProgram\seafile-server-6.0.7 и запускаем от имени админа, файл run.bat --> Выберем диск, на котором будет организованно хранилище данных (Диск с пользовательскими файлами, например, D:) --> Next.
После этого Seafile Server неожиданно прекратил работу. Если у Вас произойдёт, что-либо подобное, держим путь C:\SeafileProgram\seafile-server-6.0.7\seafile\bin и заново запускаем seafserv-applet.exe. После чего откроется несколько окон "Оповещение системы безопасности Windows". Везде ставим галочки "Разрешить доступ". И всё станет Гуд!
В трее, по значку Seafile Server нажимаем пр.кн.мыши --> Add an admin account(A) --> Пишем адрес эл. почты и пароль --> Ok.
Заходим в свой аккаунт, прописав данные, которые только, что вводили. Радуемся! Мы создали облачное хранилище на своём компьютере!
В ролике, что в начале поста, показана настройка сетевого экрана. Я использую внутренние средства Windows, у Вас, возможно, будут другие телодвижения. Брандмауэр Windows --> Дополнительные параметры --> Правила для входящих подключений --> Создать правило --> Для порта --> Далее --> В пустом окне пишем: 8000 --> Галочка "Разрешить подключения" --> Далее --> Далее --> В окне Имя пишем: Seafile8000 --> Готово. Тоже проделываем с портом 8082.
Снова переходим в Брандмауэр Windows --> Разрешение взаимодействия с приложением или компонентом в брандмауэре Windows --> Поставьте галочки на python и seaf-server. Там же, нажимаем кнопку "Разрешить другое приложение" --> Обзор --> Идём по пути C:\SeafileProgram\seafile-server-6.0.7\seafile\bin\seafserv-applet.exe --> Открыть --> Добавить --> Ставим галочку (там где Частная) --> Ok.
Таким образом мы разрешаем обмен данными определённому приложению. С сетевым экраном покончили.
В трее на Seafile Server нажимаем пр.кн.мыши --> Install as a windows service --> Ok --> Ok.
В трее на Seafile Server нажимаем пр.кн.мыши --> Open seafile-server folder(O) --> Начинаем редактировать конфигурационный файл. Открываем папку conf --> Открыть файл ccnet.conf при помощи Notepad++ --> Нам нужно редактировать строку:
Рестарт сервера. В трее на Seafile Server нажимаем пр.кн.мыши --> Restart Seafile Server(R) --> Да.
В своём аккаунте занимаемся необходимыми настройками: добавляем доверенного пользователя (если таковой есть, ибо он будет без проблем шаркаться по вашим облакам), создаём новые папки, загружаем в них данные, расшариваем директории для общего доступа и так далее. В ролике это отражено, не буду засорять бумагу кляксами:). Рассказал всё, что качается локальной сети.
Что делаю, когда нахожусь в другой комнате, а не рядом с включенным компьютером. Запускаю на своём смартфоне Seafile-клиент и слушаю музыку, которую ранее загрузил в облака.
Теперь давайте сделаем так, чтобы любой файл, стал доступен по внешней ссылке . То есть, чтобы был доступ в интернет, для всех пользователей всемирной паутины. Заходим в свой аккаунт --> Управление системой --> Настройки --> Было:
Далее по настройкам роутера не могу сказать, что либо определённого, у всех они от разных производителей. Я обычно "иду" --> Домашняя сеть --> Серверы --> Пишу первый порт: 8000 --> IP-адрес сервера ставлю: 192.168.1.41 --> Описание: Seafile8000 --> Доступ из интернета: Разрешен всем --> Кнопка "Добавить". Точно такие действия со вторым портом:8082.
Доступ к домашней сети из интернета успешно добавили. Выход из роутера. И теперь в своём аккаунте добавляем общий доступ для определённого файла или папки. Копируем ссылку и размещаем её на любом Интернет-ресурсе или отправляем по эл. почте.
Так, что у вас теперь две дороги, одна в Психиатрическую больницу, где только кормят. другая дорога в Психоневрологический Диспансер, где только выгуливают;).
Читайте также: