Всем привет!!!
В этом материале я расскажу как установить speedtest-tracker в docker на Synology и всегда знать какая скорость вашего интернета сейчас или была ранее. В общем следить за качеством интернета.
Оглавление
Speedtest Tracker — это приложение в docker контейнере, которое позволяет пользователям отслеживать скорость интернет-соединения с помощью сервиса Speedtest.net от Ookla’s (сервис может передавать ваши данные правительству США). Предоставляет информацию о скорости загрузки (download), скорости выгрузки (upload) и задержке (ping). Хранит историю тестов, чтобы пользователи могли видеть изменения в производительности их интернет-соединения со временем. Это может быть полезно для диагностики проблем с интернетом, проверки качества провайдера или оценки влияния различных факторов на скорость соединения.
Подготовка
Для начала в папке docker создайте папку speedtest-tracker а в ней еще одну папку config как показано на картинке ниже
Файл docker compose
Для установки и запуска speedtest tracker понадобится такой файл docker compose, а ниже я расскажу как его заполнить
Обновлять очень легко. В Container Manager в разделе образы нажмите на кнопку обновить напротив speedtest-tracker:latest
---
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
container_name: speedtest-tracker
environment:
- PUID=1026
- PGID=100
- TZ=Asia/Omsk
- APP_KEY=base64:7Mkq......................Jqypi1Rk=
- APP_URL=https://speedtest-tracker.XXX.synology.me
- DB_CONNECTION=sqlite
- SPEEDTEST_SERVERS=
- DISPLAY_TIMEZONE=Asia/Omsk #optional
- PRUNE_RESULTS_OLDER_THAN=0 #optional
- SPEEDTEST_SCHEDULE=6 */6 * * *
- CHART_DATETIME_FORMAT=j/m G:i
- DATETIME_FORMAT=j M Y, G:i:s
- PUBLIC_DASHBOARD=true
volumes:
- ./config:/config
ports:
- 9090:80
Заполните следующие переменные:
- APP_KEY – нужно получить тут https://speedtest-tracker.dev/. Скопировать и вставить все желтым цветом
- TZ и DISPLAY_TIMEZONE – можно найти тут
- APP_URL – тут можно вписать домен обратного прокси или http://IP-NAS:9090. Пригодится, если настроите уведомления, что бы быстро переходить на страничку.
- SPEEDTEST_SCHEDULE – периодичность замера скорости. Я рекомендую замерять раз в 6 часов, но можно и чаще. Слишком часто будет сильнее нагружать сеть и мне кажется только запутает вас. Примеры:
- 6 */1 * * * – каждый час в 6 минут
- 6 */6 * * * – каждые 6 часов в 6 минут
- */10 * * * * – каждые 10 минут
- Другие варианты тут
- SPEEDTEST_SERVERS – тут можно указать список серверов через запятую для тестирования. По умолчанию будет выбран один самый лучший сервер. Лучшие сервера, по мнению сервиса можно узнать тут. Что бы указать вручную случайные сервера:
- SPEEDTEST_SERVERS=6386,14190,10987,4247,39860,3296
- Moskow Megafone – 6386
- Moskow DOM.RU – 14190
- Moskow Beeline – 10987
- SBP MTS – 4247
- Kazan RTK – 39860
- Novosib RTK – 3296
- OMSK DOM.RU – 39503
- SPEEDTEST_SERVERS=6386,14190,10987,4247,39860,3296
Дополнительно о всех параметрах можно узнать в документации проекта.
Что бы узнать номер нужного сервера, просто выберите его на сайте speedtest.net, наведите на него мышкой и внизу увидите его номер. Можно заранее протестировать сервера.
Обратный прокси
Это опционально, удобно через интернет + уведомления
Можно сделать доступ к speedtest-tracker по доменному имени через обратный прокси в Synology. Откройте панель управления в DSM, портал для входа, дополнительно и обратный прокси. Создайте новое правило. Придумайте название правила. В источнике укажите https, имя домена, например speedtest-tracker.XXX.synology.me и 443 порт. В месте назначения укажите http, localhost и порт 9090.
Не забудьте привязать нужный SSL сертификат в Панель управления – Безопасность – Сертификаты
Установка
Откройте Container Manager в DSM и перейдите на вкладку проекты. Создайте новый проект, придумайте ему имя, укажите путь до папки speedtest-tracker и либо вставьте файл docker-compose либо его текст
После создания проекта, если все сделали правильно, выйдет код 0, который означает что проект успешно создан.
Первое подключение
Откройте новую вкладку браузера и введите домен, который настраивали в обратном прокси или http://IP-NAS:9090 и откроется панель speedtest-tracker
У вас данных не будет, они появятся позже спустя указанное в docker compose время
Что бы попасть в админ панель speedtest-tracker введите логин admin@example.com и пароль password
Рекомендую после первого входа их поменять
Можно настроить уведомления в различные службы почты или телеграм
Для почты:
- Чтобы настроить параметры почтового сервера, вам необходимо обновить следующие переменные в вашем файле docker compose или добавить их к переменным среды, передаваемым в контейнер. При выборе шифрования почты поддерживаются как протоколы ssl, так и tls, и вам следует уточнить у своего почтового провайдера, какой из них использовать и какой порт.
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=username@gmail.com
MAIL_PASSWORD="password"
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=username@gmail.com
MAIL_FROM_NAME="Speedtest Tracker"
Для телеграм:
- Создайте Telegram-бота, отправив сообщение с помощью @BotFather.
- Используйте идентификатор токена бота, чтобы добавить следующую переменную в ваш файл .env в каталог подключенных данных. TELEGRAM_BOT_TOKEN=разместите свой токен здесь.
- Далее вам понадобится ваш собственный идентификатор чата (подсказка: это не идентификатор бота), начните чат с @Get_Id_Bot, добавьте его в свой список “Получатели” и нажмите “Сохранить”.
- Начните чат с вашим ботом, созданным вами на шаге 1, чтобы начать получать уведомления от вашего Telegram-бота.
Для ручного запуска теста скорости на главном экране в панели управления нажмите кнопку Speedtest и выберите подходящий сервер, а через 1-2 минуты обновите страницу
Настройка фаервола
Если у вас настроен фаервол, то нужно разрешить сеть проекта на нем. Для этого посмотрите какая сеть проекта у вас. (она меняется при каждом создании проекта) В моем случаи это 192.168.128.0/20. 20 это маска 255.255.240.0. Если вы не знаете как преобразовать эту маску, то можно воспользоваться онлайн IP калькулятором. Затем на фаерволе разрешите эту сеть, как показано на картинке ниже. Главное, что бы разрешающее правило было выше запрещающего.
Мой вывод
Speedtest Tracker в docker на Synology мне очень понравился. Я даже жалею, что раньше не воспользовался этой программой. Для теста я запускал ее раз в час, но после нескольких дней перевел на режим раз в 6 часов. Уведомления я не настраивал, мне хватает просто периодически заходить и смотреть графики с результатами. Главное помните, что если Speedtest Tracker показывает плохую скорость интернета, то это не значит, что интернет плохой. Возможно в это время вы или кто-то еще что-то качали, обновлялся Windows или игра в Steam. Убедитесь, что проблем в вашей сети нет и только потом идите к провайдеру.