Syncthing: Офис без файлового сервера

Задача:


  1. Мини-офис (порядка 15 ± 5 пользователей)
  2. Нет администратора сети
  3. Нет общего файлового сервера
  4. Часть работников работает дома
  5. Основная масса компьютеров это Ubuntu, ну и другая ясно что.

И важно, чтобы у всех были следующие файловые ресурсы:
  1. DOCS входящие / исходящие / приказы и т.д.
  2. SALES промо / клиенты / продажи
  3. WORK проекты / работы
  4. FINS финансовые делишки
  5. HR кадровые
  6. TEMP помойка
  7. ZIP для схрона чего-то, но общего доступа

Если перед вами стоит такая задача, читайте дальше…

Из этого видно, что есть несколько групп пользователей. Кто-то имеет всё, кто-то эту часть, кто-то другую, и что-то пересекается.

Поиск решения


Решением этой задачи оказалось использование Synсthing (Thing (англ.) = вещица). Конечно, концепция общего хранения должна исходить от одного пользователя, да и доступ к информации у него полный. Конечно это не сильно продвинутый способ распределения прав доступа, но выкрутиться в небольшом коллективе с этим решением можно.

Почему Synсthing, а не BtSync или DropBox? DropBox был первым, когда нас было двое-трое, потом был BtSync, когда кто-то уходил пришлось перейти на Synсthing.

Для нас были очевидные положительные качества в пользу Synсthing.
качество syncthing btsync dropbox
открытый код да нет нет
цена бесплатно бесплатно (доп.опции платно) бесплатно 2Гб (больше — платно)
отключить пользователя можно нет можно
открытый код да нет нет
установка/настройка сложно/гибкие нормально/менее гибкие просто/ограниченно

Как сделать


Здесь, на хабре, есть статья как устанавливать и настраивать syncthing, но мы всё делали не совсем так, как там написано, но в общем похоже.

На Ubuntu ставим так


sudo apt-get install curl
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb http://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing-release.list
sudo apt-get update
sudo apt-get install syncthing

Чтобы запускался автоматом для одного пользователя %username% сделали файл:
sudo nano /etc/init/syncthing.conf

В него написали (%username% замените на его имя):
description "Syncthing P2P sync service"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
env STNORESTART=yes
env HOME=/home/%username%
setuid "%username%"
setgid "%username%"
exec /usr/bin/syncthing
respawn

На Windows так



Настройки


  1. Выбираем свой комп главным
  2. Управляем через веб-интерфейс по-умолчанию с адреса http://127.0.0.1:8384
  3. Устанавливаем на каждом компьютере Syncthing
  4. Чтобы управлять каждым компьютером с одного места, то у каждого в настройках в параметрах Адрес панели управления укажите 0.0.0.0:8384 и это позволит управлять по сетевому адресу компьютера (например: 192.168.1.2:8384)
  5. Устанавливаем имя админа и пароль
  6. Даём внятное Имя устройству, чтобы потом не путаться кто есть кто
  7. Сразу удаляем синхронизируемый ресурс, который по-умолчанию в Syncthing настроен
  8. саму папку Sync физически не удаляем, которая создана по-умолчанию при установке, а в ней и размещаем будущее каталогизированное хранилище (и это надо делать на каждом устройстве):
    • MYFIRM.DOCS
    • MYFIRM.SALES
    • MYFIRM.WORK
    • MYFIRM.FINS
    • MYFIRM.HR
    • MYFIRM.TEMP
    • MYFIRM.ZIP

  9. Теперь передайте на главный комп ID с каждого устройства и добавьте все Устройства на главном
  10. На главном открывайте настройки синхронизируемых ресурсов (папки) и в настройках отмечайте с каким устройством можно синхронизироваться

Итог


Ну всё, думаю, что этого короткого описания концепции и настройки общего файлового обмена/хранения достаточно.
  • Работает без проблем если имена файлов присваиваются по сокращённой схеме именования, то есть как на Windows (просто у Linux на файловой системе EXT4 больше возможностей именования файлов, но это не переваривает NTFS у Windows).
  • Клиенты Syncthing обновляются нормально и периодически.
  • Есть много интересных фишек, но это я буду расписывать если будет здоровый интерес у местной аудитории.

Ссылки по теме


Tags:
syncthing, btsync, dropbox

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.