Зачем разработчики зафоркали AList и создали OpenList
Представьте типичный рабочий хаос. Бэкапы сгружаются в S3-бакет, личные архивы лежат на Яндекс Диске, пара документов затерялась в Google Drive, а на домашнем NAS крутится SMB-шара. Чтобы дотянуться до нужного файла, приходится держать открытыми с десяток tabs в браузере или поднимать кучу специализированных утилит.
Долгое время главной спасительной утилитой для таких ситуаций оставался AList. Это приложение на Go монтирует практически любые хранилища в единую файловую систему с опрятным веб-интерфейсом и встроенным WebDAV-сервером. Но недавно вокруг проекта случился кризис доверия, связанный с закрытием части кода и неопределенным вектором развития. В ответ на это создатели OpenList зафоркали оригинальный репозиторий, зафиксировали лицензию AGPL-3.0 и передали управление сообществу.
Посмотрим, что представляет собой проект сейчас, чем он полезен и как помогает организовать разрозненные файлы.
Что умеет OpenList
В основе своей это один бинарник, который выступает прослойкой между вашими дисками и пользователем. Вы подключаете аккаунты облачных провайдеров в админке, а на выходе получаете единый каталог файлов.
Список поддерживаемых бэкендов внушителен. Помимо стандартных вещей вроде локального диска, S3, FTP, SFTP, SMB и WebDAV, утилита работает с десятками облачных сервисов:
- Яндекс Диск и Google Drive
- OneDrive и SharePoint
- Dropbox и Mega.nz
- ProtonDrive и GitHub
- Китайские сервисы вроде Aliyundrive, 123pan, BaiduNetdisk и 115
При этом приложение не просто отображает список файлов. В веб-интерфейс встроен удобный просмотрщик. Документы PDF, Markdown, исходный код на разных языках программирования и офисные файлы (.docx, .xlsx, .pptx) читаются прямо в браузере. Для видео и аудио есть плеер с поддержкой субтитров и текстов песен. Картинки можно листать в режиме галереи.
Чем это полезно на практике
Самая сильная сторона проекта — трансляция всего содержимого через WebDAV. Это открывает сразу несколько сценариев применения.
Медиасервер без гигабайтов на локальном диске
Вы можете подключить к утилите свой Google Drive или Яндекс Диск, включить WebDAV и прописать адрес в медиаплеере вроде Infuse, Kodi или VLC на телевизоре. Видеофайлы стримятся напрямую из облака. Приложение перенаправляет HTTP-запросы (делает 302-редирект) или проксирует поток, поэтому локальный сервер не забивает оперативку и диск тяжелым медиаконтентом.
Прямой проброс файлов между облаками
Обычно, чтобы перекинуть 20 гигабайт из S3 в Google Drive, приходится скачивать архив на свой ноутбук и загружать обратно. Если запустить OpenList на VPS с хорошим каналом, он перенесет файлы между разными провайдерами внутри своего интерфейса.
Готовый файловый хостинг для команды
Нужно дать клиенту или коллеге ссылку на скачивание большого файла? В интерфейсе генерируются прямые постоянные ссылки. Можно закрыть отдельные папки паролем, настроить права доступа для разных пользователей или разрешить анонимную загрузку файлов в определенную директорию.
Технические подробности и деплой
Проект написан на Go, поэтому собранный бинарник потребляет минимум ресурсов. В простую конфигурацию с парой подключенных дисков вполне хватит 100-200 мегабайт оперативной памяти. Утилита отлично чувствует себя даже на самых дешевых одноплатниках или слабых VPS.
Самый простой способ развернуть сервис — Docker. Запуск сводится к одной команде:
docker run -d --restart=always -v /etc/openlist:/opt/openlist/data -p 5244:5244 -e PUID=0 -e PGID=0 --name openlist openlistteam/openlist:latest
После старта веб-панель доступна на порту 5244. Пароль администратора генерируется в логах контейнера при первом запуске, но его легко сбросить командой docker exec -it openlist ./openlist admin.
Если под рукой нет сервера, авторы предлагают вариант с проксированием через Cloudflare Workers, хотя для полноценной работы все же удобнее запустить контейнер.
Что в итоге
Форк получился живым. Команда регулярно выпускает релизы, чинит отваливающиеся API китайских и международных облаков и принимает пулл-реквесты.
Попробовать OpenList точно стоит, если вы устали переключаться между разными облачными сервисами или хотите собрать собственный стриминговый хак для домашнего кинотеатра. Он экономит время и избавляет от необходимости держать лишний софт на рабочих устройствах.
