Файловий менеджер для доступу до файлів на сервері
Мотивація
Часто є потреба отримати доступ до файлів які знаходяться на віддаленому сайті: до фото, документів чи музики. Поширеним способом який часто пропонують у таких випадках, є встановлення Nextcloud, Owncloud чи подібних додатків. Після експериментів з ними, я прийшов до висновку, що мені не потрібні можливості цих програм. Все, що я потребував, це щось на кшталт файлового менеджера, але у браузері. Якось, мені вдалось натрапити на Web File Browser. Виявилось, що він відповідає моїм вимогам, і я вирішив встановити його на власний сервер.
Після встановлення Web File Browser я зможу переглядати та керувати файлами на своєму сервері, в тому числі завантажувати чи відвантажувати файли з інших пристроїв на сервер. Web File Browser буде доступним з інтернету, скажімо, через домен files.site.net
.
Встановлення Web File Browser
Встановимо Web File Browser командою
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
Налаштуємо автоматичний запуск filebrowser
одночасно із завантаженням сервера. Для цього, створимо файл з налаштуваннями сервісу systemd
/etc/systemd/system/filebrowser.service
і додамо туди наступний вміст
[Unit]
Description=Filebrowser
After=network-online.target
[Service]
User=root
Group=root
ExecStart=/usr/local/bin/filebrowser -r /
[Install]
WantedBy=multi-user.target
Запустимо службу filebrowser
і перевіримо її стан після запуску.
sudo systemctl start filebrowser
sudo systemctl enable filebrowser
sudo systemctl status filebrowser
Налаштування доступу до файлів через браузер
Створимо віртуальний хост для Apache /etc/apache2/sites-available/files.conf
із наступним вмістом.
<VirtualHost *:80>
ServerName files.site.net
Redirect permanent / https://files.site.net
RewriteEngine on
RewriteCond %{SERVER_NAME} =files.site.net
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName files.site.net
ServerAdmin admin@gmail.com
SSLCertificateFile /etc/letsencrypt/live/files.site.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.site.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ProxyPreserveHost On
ProxyRequests Off
# allow for upgrading to websockets
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:8080/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://127.0.0.1:8080/$1 [P,L]
# Proxy to your local filebrowser instance
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
</IfModule>
Встановимо сертифікати для захищеного доступу до сайту files.site.net
sudo certbot --apache -d files.site.net
Увімкнемо віртуальний хост та перезапустимо сервіс Apache
sudo a2ensite files.conf
sudo systemctl reload apache2
Перейдемо у браузері за адресою https://files.site.net
і введемо ім’я admin
та пароль admin
для доступу до файлів. Коли відкриється вікно Web File Browser, потрібно налаштувати область файлової системи яка буде доступна та змінити пароль.