Сделал для себя прикольную (на мой взгляд) штуку — веб-файловый менеджер, который по сути является оберткой над FTP.
Идея в том, что пользователь заходит в веб файл-менеджер, вводит данные от FTP и получает доступ к своим файлам, согласно своим правам. Таким образом все заморочки с правами решаются и настраиваются один раз на стороне FTP-сервера.
Я знаю, что есть Filestash, он хороший и удобный, и умеет все что надо. Кроме того, что… не умеет копировать и перемещать папки и файлы. Не умеет делать работу, которую файловый менеджер должен делать по умолчанию. Поэтому, я решил сделать свой вариант. Мой проект получился именно тем, что мне надо и что я хочу видеть в подобном продукте.
- Удобный, но простой интерфейс с боковой панелью для навигации
- Drag-and-drop загрузка (в теории без лимита на размер файла)
- Скачивание через браузер (в том числе, группами файлов или папками)
- Move / Copy с подтверждением перезаписи
- Свойства файлов + вычисление md5 для файлов
- Тёмная/светлая тема (auto/light/dark)
- Многоязычность (i18n), автоопределение языка
- Сохранение сессий и настроек сеанса в куках
- Поддержка мобильных устройств
- Возможность разворачивания в standalone или в Docker*
- Легкая работа через реверс-прокси
Мне кажется получилось интересно, поэтому что-то типа предварительной версии выкладываю на суд общественности. Выкладываю по принципу “как есть”. Мои тесты показали, что продукт вполне стабилен и я им активно пользуюсь уже пару месяцев.
Что возможно будет дальше:
- Поддержка других бэкэндов доступа к файлам. Пока планируется как минимум WebDAV и SMB.
- Простой редактор файлов и простая гляделка картинок и видео.
- Различные виды списка файлов
Чего не будет точно:
- Поддержки онлайн-редактирования файлов Office
- SSO, OIDC, 2FA и прочего
Обращаю внимание, что если задать в config/config.yaml адрес сервера и порт, то он не будет появляться на странице входа.
https://github.com/serenitatis/FFM
https://git.serenitatis.ru/serenitatis/FFM
*Docker — основной и рекомендуемый способ установки.