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 — в ней будут лежать все настройки и база данных.