Устанавливаем файловый менеджер Sprut

Sprut — серверный двухпанельный файловый менеджер написанный на Python и JavaScript.

Развитием и поддержкой проекта занимается известный российский хостинг-провайдер Бегет. Файл-менеджер используется у них в административной панели хостинга и доступен для любых тарифов.

Вы можете изучить его работу, зарегистрировавшись на их сайте, для новых клиентов провайдер предоставляет бесплатный 30-дневный период.

Я когда-то попробовал и влюбился в удобство их интерфейса, а Sprut восхищает меня и по сей день.

Особенно мне нравится:

  1. удобный оконный редактор исходного кода с подсветкой синтаксиса, автодополнением тегов и проверкой синтасксических ошибок в коде;
  2. возможность подключения к внешнему серверу;
  3. работа с различными кодировками и возможность быстро сменить кодировку файлов;
  4. шикарный поиск по файлам и папкам, а так же по содержимому файлов.

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

 

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

Sprut — когда-то даже был удостоен большого обзора в журнале Хакер — апрель 2016 #4

 

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

Итак, перед установкой я еще немного расскажу о том как я использую Sprut в своей работе.

Есть несколько правил связанных с безопасностью, которые лучше не нарушать.

Во-первых, никогда не устанавливайте Sprut от имени суперпользователя. Это правило можно применить к любому приложению, во многих системах пользователь root вовсе отключен по умолчанию. Я же в свою очередь еще раз напоминаю очевидные вещи. Можете написать «спасибо кэп» в комментариях.

Во-вторых, я включаю контейнер Sprut только по мере необходимости. После использования всегда отключаю и НИКОГДА не запускаю его через автозагрузку.

 

Использование контейнеров обычно безопасно, вы рискуете исключительно содержимым контейнера. Но здесь нужно понимать, что получив доступ к Спруту, взломщик может управлять вашей файловой системой за пределами контейнера. Если же необходимо чтобы файл-менеджер был запущен постоянно, лучше сменить порт по которому он будет доступен. Многие роботы сканируют порт по умолчанию :9443. В конце статьи я расскажу как это сделать.

Затем взломщик может применить брутфорс (от которого Sprut никак не защищен) или заюзать уязвимость скрипта, о которых мне ничего не известно. Но как говориться: если ты не видишь суслика, это не отменяет факта его существования.

Что ж, все точки над «й» расставлены, приступаем к установке.

Первым шагом будет установка Docker, если он еще не установлен.

Если же получаем ошибку, тогда приступаем к установке Docker:

Команда для установки будет выглядеть как-то так:

wget -qO- https://get.docker.com/ | sh

Далее, проверим Docker на работоспособность:

sudo docker run hello-world

#
Hello from Docker.
This message shows that your installation appears to be working correctly.
...

Образ Hello-World создан специально для проверки работоспособности приложения.

Следующий шаг, создание директории в которую будет установлен Спрут и переход в нее:

mkdir /opt/sprutio && cd /opt/sprutio

И, если все прошло успешно, запускаем скрипт установки:

wget https://raw.githubusercontent.com/LTD-Beget/sprutio/master/run.sh

Загруженному скрипту необходимо дать права на запуск:

chmod +x run.sh

Далее мы будем запускать Sprut командой: ./run.sh или /opt/sprutio/run.sh.

Проверить, что Sprut работает в данный момент, можно командой docker ps. Команда покажет запущенные контейнеры.

Сразу после установки менеджер файлов будет доступен по адресу:

https://IP_вашего_сервера:9443

Для файлового менеджера по умолчанию установлен самоподписанный сертификат. Если у вас есть собственный SSL-сертификат положите их в папку ssl и далее перезустить контейнеры.

Для авторизации в файловом менеджере берутся пользователи операционной системы. Это значит, что данные авторизации для пользователя который установил Sprut, так же доступны и при авторизации в менеджере.

Остановить запущенные контейнеры можно командой:

./run.sh stop

Обновить скрипт до свежей версии:

./run.sh pull

Полюбовавшись интерфейсом давайте сменим порт.

vi /opt/sprutio/docker-compose.yml

Я пользуюсь редактором Vim, но вы можете воспользоваться любым-другим. Который вам привычнее. Vi — это очень старая версия Vim и установлена она на большинстве известных мне дистрибутивов Linux по умолчанию.

Если вы никогда им не пользовались, то лучше обойдитесь редактором Nano или почитайте документацию.

В блоке настроек сервера NGINX находим искомый порт и меняем на свой. Я указал :3494, вы можете выбрать какой-то другой. :443 — менять не нужно.

Если еще не в курсе, 443 порт используется для подключения по https. А Sprut.io подгружает самоподписанный сертификат, о чем вы уже скорее всего получали предупреждение от браузера при первой загрузке. Без сертификата Спрут работать отказывается. Можно, конечно поколдовать с конфигурацией и принудительно отключить сертификат, но я пока не вижу в этом практической пользы.

nginx:
...
  ports:
    - "127.0.0.1:9080:80"
    - "9443:443"
...

 

Вывод: сегодня мы познакомились с удобным файловым менеджером Sprut.io. А так же как сменить порт по умолчанию.

StackUP