В этой статье мы подробно разберем, как установить и настроить 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• Полная автоматизация через один скрипт
• Возможность управления через административный интерфейс
Это решение идеально подходит для:
• Личного облачного хранилища
• Обмена файлами в команде
• Резервного копирования
• Управления файлами с мобильных устройств
Удачи с вашим облачным хранилищем! 🚀








