Деплоим HTTP File Server в LXC (NGINX)
Я собрал несколько скриптов под Tampermonkey и понадобился единый ресурс, откуда пользователи смогут получать обновления.
Для Tampermonkey источник обновления указывается прямо в скрипте, а само расширение уже опрашивает этот адрес.
NGINX идеально подходит под такую задачу: лёгкий, быстрый, надёжный и разворачивается меньше чем за минуту.
Ниже — простой и рабочий способ поднять HTTP-хост под раздачу файлов.
В этой инструкции я покажу, как развернуть контейнер, настроить минимальный конфиг и получить рабочий HTTP-хост для файлов.
Для тех, кто уже трогал Proxmox - ничего сложного.
1. Создаём LXC-контейнер
После запуска контейнера подключаемся.
2. Установка базовых пакетов
apt update && apt upgrade -y apt install curl nginx openssh-server -y # Создаём каталог, в котором будем хранить скрипты mkdir -p /var/www/updates # Активируем NGINX systemctl enable nginx systemctl start nginx
3. Проверяем работу
curl http://localhost
Если видишь стандартную страницу — всё ок.
4. Настраиваем NGINX
nano /etc/nginx/sites-enabled/default
root /var/www/; # оставляем так, если хотим видеть все каталоги в www # или # root /var/www/updates; index index.html; autoindex on; autoindex_exact_size off; # опционально, размеры будут показываться в MB / KB / GB autoindex_localtime on; # опционально, вывод будет в твоей локальной тайм-зоне
systemctl restart nginx
5. Настраиваем доступ по SSH/SCP
nano /etc/ssh/sshd_config
Нужно раскомментировать или добавить следующие строчки:
PasswordAuthentication yes PermitRootLogin yes
Сохраняем и перезапускаем ssh:
systemctl restart ssh
Если сервис доступен только внутри локальной сети, это допустимо.
В публичных сетях лучше переключить на SSH-ключи.
6. Загружаем файлы
scp /Users/fonwa/script.js root@192.168.1.x:/var/www/updates
В GUI-клиент сохраняем хост, подключаемся, просто перетягиваем файлы в /var/www/updates.
7. Проверяем
На этом этапе ресурс уже доступен в локальной сети по IP-адресу контейнера.
В браузере достаточно ввести адрес хоста, чтобы увидеть каталог с загруженными файлами.
Если нужно локально прикрутить доменное имя — ранее я рассказывал, как можно настроить домашний DNS.
А если хочется завернуть трафик в HTTPS и опубликовать - это легко делается через Nginx Proxy Manager.