Docker
Иногда не хочется устанавливать полноценный apache2
сервер и php
на свою машину или нет готовых инструкций под
экзотическую платформу. Docker гарантирует что приложение запустится под любую поддерживаемую ОС и будет работать так же
хорошо как и на “базовой” платформе (debian:buster-slim). Также этот метод возможно снизит порог вхождения для некоторых
пользователей.
Запуск в Docker контейнере
Не всегда есть возможность использовать сеть хоста для контейнера, банально по причине, что порт 80 уже занят кем-то другим. Также будем использовать volume, это позволит контейнеру использовать папку в которой лежит webtlo и наши данные. Можно выключать и удалять контейнер - данные не пропадут. Команда скачивания образа WebTLO запуска контейнера:
docker run -d --restart unless-stopped --name webtlo -v $PWD/webtlo-data:/data -p 1844:80 berkut174/webtlo:master
у пользователя должны быть права запускать docker, либо нужно использовать
sudo
в параметре -v
$PWD возвращает текущую папку, либо до :
впишите полный путь до папки, где вы собираетесь хранить базу данных и настройки.
После успешного запуска, Webtlo доступно по адресу http://localhost:1844
, вместо localhost может использоваться адрес вашего сервера, на
котором развернут контейнер. При необходимости не забудьте прокинуть порт 1844, если сервер находится за
маршрутизатором.
Убедитесь, что локальная папка с базой данных существует, и к ней есть права доступа, в теории, докер сам должен создать данные папки:
mkdir $PWD/webtlo-data
chmod 777 $PWD/webtlo-data
Запуск через Docker Compose
Пример файла находится здесь: https://github.com/keepers-team/webtlo/blob/master/docker-compose.yml, в остальном всё аналогично секции про Docker
Настройки подключения торрент клиента
Также, чтобы из контейнера обращаться к торрент-клиенту на хосте, пропишите ip в webtlo,
Настройки -> Настройки торрент-клиентов -> IP-адрес/сетевое имя: 172.17.0.1
Кнопкой Проверить убедитесь в работоспособности и сохраните настройки.
172.17.0.1
- по умолчанию ip хост машины для доступа из докер контейнера. Также если не работает попробуйте
вариант: host.docker.internal
И в разделе Настройки -> Настройки загрузки торрент-файлов: в параметр *Каталог для скачиваемых .torrent файлов: /tmp/ и в Скачивание *.torrent файлов с заменой Passkey, Каталог: /tmp/
Не забудьте сохранить все настройки.
Запуск на Windows скриптом
Автор раздела предполагает, что вы осознаете, что делаете и на вашем ПК уже установлен Docker.
В папке, где вы собираетесь хранить настройки и базу данных webtlo создайте и запустите следующий .bat файл. Имя может быть любым. К примеру, webtlo-build.bat
rmdir /s /q .\webtlo-master
powershell -Command "Invoke-WebRequest https://github.com/keepers-team/webtlo/archive/refs/heads/master.zip -OutFile webtlo.zip"
powershell Expand-Archive webtlo.zip -DestinationPath ./
del webtlo.zip
set getversion='powershell "(Get-Content .\webtlo-master\version.json | ConvertFrom-Json).version"'
for /f "delims=" %%a in (%getversion%) do set "version=%%a"
docker build -t webtlo:%version% .\webtlo-master
rmdir /s /q .\webtlo-master
set current=%0
set current=%current:~1,-1%
docker run -d --restart unless-stopped --name webtlo -v %current%\..\webtlo-data:/data -p 80:80 webtlo:%version%
pause
Данный скрипт делает следующее:
- удаляет имеющийся контейнер с именем webtlo
- удаляет папку с данными webtlo
- скачивает последнюю вервию с гитхаба (не последний релиз, а именно актуальный мастер)
- разархивирует код
- находит в файле конфига текущую версию
- создает образ на основе кода с именем webtlo и версией из конфига
- создает и запускает контейнер на основе этого образа с именем webtlo и автоматическим перезапуском
- удаляет созданные в процессе ненужные файлы
В папке рядом со скриптом будет создана webtlo-data — в ней будут лежать все настройки и база данных.