menu

Файловий менеджер для доступу до файлів на сервері

Мотивація

Часто є потреба отримати доступ до файлів які знаходяться на віддаленому сайті: до фото, документів чи музики. Поширеним способом який часто пропонують у таких випадках, є встановлення 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, потрібно налаштувати область файлової системи яка буде доступна та змінити пароль.