В этой статье мы подробно разберем, как установить и настроить Filestash – современный веб-интерфейс для управления файлами, используя WebDAV в качестве бэкенда на сервере Ubuntu 24.04. Решение будет полностью автоматизировано с помощью одного bash-скрипта.
📋 Что такое Filestash?
Filestash – это мощный веб-интерфейс для управления файлами, который поддерживает подключение к различным источникам данных: облачные хранилища, FTP, S3, WebDAV и другие. Мы настроим его как локальное облачное хранилище с доступом через браузер.
🧰 Требования
- VPS сервер или выделенный сервер с Ubuntu 24.04
- Доступ по SSH с правами sudo
- Открытые порты:
8334
(Filestash) и8335
(WebDAV)
🛠️ Шаг 1: Создание установочного скрипта
Создайте файл install_filestash_webdav.sh
со следующим содержимым:
#!/bin/bash
# Цвета для вывода
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}=== Установка Filestash + WebDAV на Ubuntu 24.04 ===${NC}"
# Проверяем, запущен ли скрипт от root
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}Пожалуйста, запустите скрипт с sudo: sudo ./install_filestash_webdav.sh${NC}"
exit 1
fi
# Получаем оригинального пользователя (не root)
if [ -n "$SUDO_USER" ]; then
CURRENT_USER="$SUDO_USER"
else
CURRENT_USER=$(logname 2>/dev/null || whoami)
fi
echo -e "${BLUE}Текущий пользователь: $CURRENT_USER${NC}"
# Обновление системы
echo -e "${BLUE}Обновление системы...${NC}"
apt update && apt upgrade -y
# Установка Docker
echo -e "${BLUE}Установка Docker...${NC}"
apt install -y ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Добавляем пользователя в группу docker
echo -e "${BLUE}Добавление пользователя $CURRENT_USER в группу docker...${NC}"
usermod -aG docker $CURRENT_USER
# Установка rclone
echo -e "${BLUE}Установка rclone...${NC}"
curl https://rclone.org/install.sh | bash
# Создание директорий
echo -e "${BLUE}Создание директорий...${NC}"
mkdir -p /srv/webdav/data
mkdir -p /srv/filestash
# Настройка прав доступа
chown -R 1000:1000 /srv/webdav/data
chown -R 1000:1000 /srv/filestash
# Создание systemd сервиса для WebDAV
echo -e "${BLUE}Создание systemd сервиса для WebDAV...${NC}"
tee /etc/systemd/system/webdav.service > /dev/null <<EOF
[Unit]
Description=WebDAV Server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/rclone serve webdav /srv/webdav/data --addr :8335 --user admin --pass admin123
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# Запуск и включение сервиса
echo -e "${BLUE}Запуск WebDAV сервиса...${NC}"
systemctl daemon-reload
systemctl enable webdav
systemctl start webdav
# Создание docker-compose файла для Filestash
echo -e "${BLUE}Создание docker-compose.yml для Filestash...${NC}"
tee /srv/filestash/docker-compose.yml > /dev/null <<EOF
version: '3.8'
services:
filestash:
image: machines/filestash
container_name: filestash
restart: unless-stopped
ports:
- "8334:8334"
volumes:
- /srv/filestash//app/data
- /etc/localtime:/etc/localtime:ro
EOF
# Функция для выполнения команд от пользователя с правами docker
run_as_user_with_docker() {
local user="$1"
shift
local cmd="$*"
# Создаем временную оболочку с правильными группами
sudo -u "$user" bash -c "newgrp docker << 'EOF_DOCKER'
cd /srv/filestash
$cmd
EOF_DOCKER"
}
# Запуск Filestash с немедленным применением прав docker
echo -e "${BLUE}Запуск Filestash с правами docker...${NC}"
run_as_user_with_docker "$CURRENT_USER" "docker compose up -d"
# Проверка статуса контейнера
echo -e "${BLUE}Проверка статуса контейнера Filestash...${NC}"
sleep 5
run_as_user_with_docker "$CURRENT_USER" "docker compose ps"
# Настройка фаервола (опционально)
echo -e "${BLUE}Настройка UFW (если активен)...${NC}"
if ufw status | grep -q "active"; then
echo "UFW активен. Открываем порты 8334 и 8335"
ufw allow 8334/tcp
ufw allow 8335/tcp
else
echo "UFW не активен. Пропускаем настройку фаервола."
fi
# Создание символической ссылки для глобального доступа
echo -e "${BLUE}Создание глобальной ссылки...${NC}"
SCRIPT_PATH="$(realpath "$0")"
ln -sf "$SCRIPT_PATH" /usr/local/bin/install-filestash-webdav
# Вывод информации
echo -e "${GREEN}=== Установка завершена успешно! ===${NC}"
echo ""
echo -e "${YELLOW}=== ПОРЯДОК НАСТРОЙКИ ===${NC}"
echo ""
echo -e "${BLUE}ШАГ 1: Настройка администратора Filestash${NC}"
echo " Откройте в браузере: http://$SERVER_IP:8334"
echo " Создайте администратора (придумайте пароль)"
echo ""
echo -e "${BLUE}ШАГ 2: Добавление WebDAV подключения${NC}"
echo " После входа в Filestash:"
echo " 1. Выберите 'WebDAV' из списка доступных типов подключений"
echo " 2. Заполните поля:"
echo " Type: WebDAV (уже выбрано)"
echo " User: admin"
echo " Password: admin123"
echo " Address: http://$SERVER_IP:8335"
echo " Path: /"
echo " 3. Нажмите кнопку 'Подключить'"
echo ""
echo -e "${RED}ВАЖНО: Обязательно измените пароль admin123 на более безопасный!${NC}"
echo "Команда для изменения: sudo nano /etc/systemd/system/webdav.service"
🔧 Шаг 2: Запуск скрипта установки
Сделайте скрипт исполняемым и запустите его:
chmod +x install_filestash_webdav.sh
sudo ./install_filestash_webdav.sh
Скрипт автоматически выполнит все необходимые действия:
- Установит последнюю версию Docker и Docker Compose
- Добавит вашего пользователя в группу docker
- Установит rclone для WebDAV
- Настроит и запустит WebDAV-сервис
- Запустит контейнер Filestash
- Откроет необходимые порты в firewall (если используется UFW)
🌐 Шаг 3: Настройка Filestash через веб-интерфейс
ШАГ 1: Создание администратора
- Откройте в браузере:
http://ваш_IP_адрес:8334
- Создайте учетную запись администратора (придумайте надежный пароль)
- Войдите в систему
ШАГ 2: Подключение WebDAV
После входа:
- Выберите ‘WebDAV’ из списка доступных типов подключений
- Заполните поля:
- Type: WebDAV (уже выбрано)
- User:
admin
- Password:
admin123
- Address:
http://ваш_IP_адрес:8335
- Path:
/
- Нажмите кнопку ‘Подключить’
🔍 Что вы увидите после установки
http://ваш_IP:8334
– Основной интерфейс Filestash
- Красивый, современный веб-интерфейс
- Управление файлами через веб-браузер
- Поддержка drag & drop загрузки
- Просмотр и редактирование файлов
http://ваш_IP:8335
– WebDAV сервер
- Служебный интерфейс rclone WebDAV
- Работает в фоне как бэкенд
- Не предназначен для прямого использования
📁 Где хранятся ваши файлы
Все файлы физически хранятся в директории сервера:
/srv/webdav/data
Вы можете:
- Добавлять файлы через веб-интерфейс Filestash
- Добавлять файлы напрямую через SSH в эту директорию
- Файлы будут доступны и там, и там
🔐 Безопасность
Обязательно измените пароль WebDAV:
sudo nano /etc/systemd/system/webdav.service
Найдите строку:
ExecStart=/usr/bin/rclone serve webdav /srv/webdav/data --addr :8335 --user admin --pass admin123
Измените admin123
на более сложный пароль, затем перезапустите сервис:
sudo systemctl daemon-reload
sudo systemctl restart webdav
Дополнительные меры безопасности:
- Ограничьте доступ по IP через firewall
- Настройте HTTPS (рекомендуется)
- Регулярно обновляйте Docker и Filestash
- Включите логирование для мониторинга
🛠️ Полезные команды управления
# Проверить статус сервисов
sudo systemctl status webdav
sudo docker ps | grep filestash
# Перезапустить сервисы
sudo systemctl restart webdav
sudo docker restart filestash
# Посмотреть логи
sudo journalctl -u webdav -f
sudo docker logs filestash
# Остановить всё
sudo systemctl stop webdav
sudo docker stop filestash
🎯 Административный интерфейс
Для доступа к расширенным настройкам Filestash перейдите по адресу:
http://ваш_IP:8334/admin
Здесь вы найдете:
- Настройки безопасности
- Управление подключения
- Настройки производительности
- Логирование и мониторинг
- Резервное копирование
Теперь у вас полностью рабочее облачное хранилище с современным веб-интерфейсом:
• Filestash как красивый веб-интерфейс на порту
8334
• WebDAV как безопасный бэкенд на порту
8335
• Все файлы хранятся в
/srv/webdav/data
• Полная автоматизация через один скрипт
• Возможность управления через административный интерфейс
Это решение идеально подходит для:
• Личного облачного хранилища
• Обмена файлами в команде
• Резервного копирования
• Управления файлами с мобильных устройств
Удачи с вашим облачным хранилищем! 🚀








