Установка игр на Nintendo Switch со своего сервера через DBI и qBittorrent с автоматическим переносом в Backup хранилище

🔹 Часть 1. Установка и настройка Nginx

Установка Nginx

sudo apt update && sudo apt upgrade -y
sudo apt install nginx -y

Создание каталогов

sudo mkdir -p /var/www/switch
sudo chown -R www-www-data /var/www
sudo chmod -R 755 /var/www

Настройка Nginx

Создайте конфигурационный файл:

sudo nano /etc/nginx/sites-available/articles.conf

Вставьте следующее:

server {
    listen 80;
    server_name articles.icelake.ru;

    root /var/www;
    index index.html;

    access_log /var/log/nginx/articles_access.log;
    error_log /var/log/nginx/articles_error.log;

    # Каталог с играми (прямой доступ)
    location /switch/ {
        root /var/www;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }

    # Бекап хранилище
    location /switch/games/ {
        alias /backup_storage/;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}

Активация конфигурации:

sudo ln -s /etc/nginx/sites-available/articles.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

🔹 Часть 2. Установка и настройка qBittorrent

Установка qBittorrent

sudo apt install qbittorrent-nox -y

Создание пользователя

sudo adduser --disabled-login --gecos "qBittorrent" qbittorrent
sudo mkdir -p /home/qbittorrent/.cache/qBittorrent
sudo chown -R qbittorrent:qbittorrent /home/qbittorrent
sudo chmod -R 700 /home/qbittorrent

# Доступ к папке игр
sudo chown -R qbittorrent:www-data /var/www/switch
sudo chmod -R 775 /var/www/switch

Первый запуск

sudo -u qbittorrent qbittorrent-nox

Скопируйте временный пароль → откройте http://<IP>:8080, войдите (логин admin), смените пароль. Остановите (Ctrl+C).

Создание сервиса

sudo nano /etc/systemd/system/qbittorrent.service

Вставьте:

[Unit]
Description=qBittorrent-nox Daemon
After=network.target

[Service]
User=qbittorrent
Group=www-data
Environment=HOME=/home/qbittorrent
ExecStart=/usr/bin/qbittorrent-nox
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Активируйте:

sudo systemctl daemon-reload
sudo systemctl enable qbittorrent
sudo systemctl start qbittorrent

🔹 Часть 3. Настройка бекап-хранилища

Монтирование SSHFS

Убедитесь, что SSHFS установлен:

sudo apt install sshfs -y

Первое подключение к серверу

Выполните первый вход через SSH для подтверждения fingerprint:

Логин_Backup_Хранилища@IP_Backup_Хранилища

Когда запросит подтверждение Are you sure you want to continue connecting (yes/no)?, введите yes.

Монтирование каталога

Затем смонтируйте каталог:

sudo mkdir -p /backup_storage
sudo sshfs -o allow_other,default_permissions,password_stdin,reconnect Логин_Backup_Хранилища@IP_Backup_Хранилища:/switch /backup_storage <<< Ваш пароль

🔹 Часть 4. Создание скрипта переноса файлов

Создание скрипта

sudo nano /usr/local/bin/transfer_to_backup.sh

Вставьте:

#!/bin/bash

SOURCE_DIR="/var/www/switch"
TARGET_DIR="/backup_storage"
LOG_FILE="/var/log/transfer_to_backup.log"

if ! mountpoint -q /backup_storage; then
    echo "$(date): Бекап хранилище не смонтировано." >> "$LOG_FILE"
    exit 1
fi

rsync -av --remove-source-files --no-owner --no-group "$SOURCE_DIR/" "$TARGET_DIR/" >> "$LOG_FILE" 2>&1
find "$SOURCE_DIR" -mindepth 1 -delete >> "$LOG_FILE" 2>&1

if [ $? -eq 0 ]; then
    echo "$(date): Файлы успешно переданы на бекап хранилище." >> "$LOG_FILE"
else
    echo "$(date): Ошибка при передаче файлов." >> "$LOG_FILE"
fi

Сделайте исполняемым:

sudo chmod +x /usr/local/bin/transfer_to_backup.sh

Настройка cron

sudo crontab -e

Добавьте:

*/15 * * * * /usr/local/bin/transfer_to_backup.sh

🔹 Часть 5. Настройка DBI

Добавьте в dbi.locations:

[Location_2]
Name=MySwitchGames
Type=ApacheHTTP
URL=http://articles.icelake.ru/switch/

🔹 Итоговая проверка

  • qBittorrent скачивает файлы в /var/www/switch.
  • Nginx отдает их через http://articles.icelake.ru/switch.
  • Скрипт переносит файлы на VPS в /backup_storage.

✅ Теперь система полностью автоматизирована!