Telegram Web Link
Короткая и актуальная на сегодняшний день заметка. Разворачиваем свой веб сервис для загрузки видео с Youtube, если не хотите зависеть от бесплатных ресурсов или ботов в Telegram, где надо либо платить, либо ждать очередь.

Есть очень простая веб обвязка над yt-dlp - MeTube. На сегодняшний день работает нормально, видео качает. Развернуть надо там, где нет замедления Youtube. Подойдёт любая VPS в минимальной конфигурации. Достаточно установить туда Docker и запустить контейнер:

# curl https://get.docker.com | bash -
# docker run -d -p 8081:8081 -v ./downloads:/downloads ghcr.io/alexta69/metube

Порты можете выбрать любые. Сервис запустится без какой-либо аутентификации. Чтобы это исправить, достаточно закрыть его любым обратным прокси на базе Nginx, Angie, Traefik, Caddy и т.д. Вот конкретный пример, как это сделать с помощью Traefik.

Загруженные видео можно будет посмотреть или скачать через веб интерфейс, либо забрать из директории downloads. У меня yt-dlp стоит локально, но веб сервисом как-то удобнее и привычнее пользоваться. Плюс, можно сразу с кем-то поделиться.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#замедление_блокировка
3👍185👎9
В продолжение темы с Youtube ещё один продукт, который позволяет локально поднять условный аналог для хостинга видео - PeerTube. Насколько я знаю, это наиболее функциональная и популярная альтернатива ютубу, которую можно развернуть на своих ресурсах. Встречал публичные сервисы, которые работали на базе этого open source проекта.

По своей сути это примерно то же самое, что и Youtube. Пользователи могут регистрироваться, создавать свои каналы, загружать видео, вести онлайн трансляции. Другие пользователи могут подписываться на каналы, смотреть их. Видео могут кодироваться в разные качества, работает перемотка, ускоренное воспроизведение. В плане воспроизведения всё привычно и функционально. Можно использовать как для публичных сервисов, так и закрытых, личных.

Покажу, как быстро развернуть и попробовать PeerTube с помощью Docker. В репозитории есть docker compose файл, но с ним надо немного поработать, чтобы запустить. Сами разработчики рекомендуют запускать PeerTube напрямую на сервере без контейнеров. В целом, это логично, так как большого смысла в использовании контейнеров в данном случае нет. Есть пошаговая инструкция.

А для теста быстрее и проще запустить в контейнере. Берём docker-compose.yml из репозитория и удаляем оттуда всё, что касается веб сервера и certbot. Для теста можно обойтись без них. Мой рабочий вариант файла я прикреплю ниже к публикации. Помимо docker-compose.yml понадобится файл с переменными .env. Мой отредактированный рабочий файл тоже приложу ниже.

Запускаем docker compose, находясь в папке с docker-compose.yml и .env:

# docker compose up

Дожидаемся, когда всё запустится. В консоли должен проскочить пароль учётной записи администратора root. Если не заметили, то откройте соседнюю консоль и запустите там:

# docker compose logs peertube | grep -A1 root
peertube-1 | [10.20.1.36:9000] 2025-01-13 15:16:01.551 info: Username: root
peertube-1 | [10.20.1.36:9000] 2025-01-13 15:16:01.551 info: User password: bexufufakumozado

После того, как всё запустится, можно идти по IP адресу сервера на порт 9000 и логиниться под учёткой root. Далее создать канал, загрузить видео и посмотреть, как всё это работает. Интерфейс переведён на русский язык. Каких-то явных ляпов в переводе я не заметил. Смотрится хорошо.

Я немного поизучал этот портал. Настроек там немного. В основном касаются кодирования и различные настройки пользователей, разрешения, ограничения, права доступа и т.д. Сделано добротно, мне понравилось. Было бы время, я бы пользовался для семейных, некоторых публичных нужд, типа канал школьного класса, какого-то детского кружка. Сделал бы закрытый непубличный портал только для участников. А то сейчас всё это раскидано по чатам Telegram, WhatsApp и VK. Очень хлопотно и неудобно собирать в одно место.

🔥Отдельно отмечу, что для PeerTube можно включить импорт видео из Youtube. Можно загружать видео как по URL, так и включить синхронизацию канала на Youtube с каналом в PeerTube. Я не проверял, как это работает, так как не настраивал на тестовой машине обход замедления ютуба.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#видео #замедление_блокировка
4👍115👎2
Для управления проектами существует немало как бесплатных, так и коммерческих продуктов, а так же переходных вариантов, когда у коммерческого продукта есть бесплатная версия с ограничениями. Одним из наиболее популярных open source проектов из данной тематики является OpenProject. О нём я и расскажу.

Сразу перечислю аналоги, чтобы было понятно, о каком типе ПО идёт речь.

▪️Бесплатные: Redmine, Taiga, Asana, Plane, ZenTao.
▪️Коммерческие: Jira, YouTrack, Wrike, Битрикс24, и т.д.

OpenProject будет актуален для компаний, которые занимается разработкой. Этот продукт позволит структурировать работу команд, заняться долгосрочным планированием. В нём можно записывать работы по каждому проекту, оценивать трудозатраты в часах и деньгах, вести дедлайны, отслеживать статусы задач и проектов, планировать релизы и т.д. Одной из наиболее привлекательных фишек OpenProject - построение диаграммы Ганта. Она там насыщенная и функциональная. Дополнительно в нём можно вести документацию, форумы, трекер ошибок (bugtracker).

OpenProject написан на Ruby. Может быть установлен как из пакетов, так и в Docker контейнере. Для прода разумнее ставить из пакетов, а для теста можно запустить в Docker:

# docker run -it -p 8181:80 \
 -e OPENPROJECT_SECRET_KEY_BASE=secret \
 -e OPENPROJECT_HOST__NAME=10.20.1.36:8181 \
 -e OPENPROJECT_HTTPS=false \
 openproject/openproject:15

Учётка по умолчанию: admin / admin.

Сами разработчики в промышленной эксплуатации рекомендуют делать установку из пакетов и закрывать доступ к продукту через Reverse Proxy. В документации есть примеры файлов конфигурации для Apache и Nginx. Причём показаны настройки как для запуска на отдельном поддомене, так и в виде поддиректории /openproject к основному домену.

У OpenProject есть интеграция с Nextcloud. Его можно использовать в качестве хранилища файлов. Настраивается штатно через раздел в администрировании.

Работа в веб интерфейсе неинтутивна. Надо разбираться, дорабатывать продукт под себя: добавлять новые поля, связи и т.д. Но это относится ко всем продуктам подобного типа. С ними со всеми надо разбираться и потом болезненно переходить с одного на другой. Так что тут надо 100 раз подумать и проверить, прежде чем что-то внедрять.

В целом это один из наиболее функциональных open source продуктов, возможностей которого хватает для ведения типовых проектных работ.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

 #управление_проектами
1👍82👎4
Я анонсировал ранее подборку сайтов IT блогеров со статьями на различные темы, связанные с настройкой и эксплуатацией IT систем. Собралось небольшое сообщество авторов. Полный список сайтов будет в конце. А пока анонс новых статей тех авторов, кто согласился участвовать и прислал свои материалы. 

❗️Напомню, что основной смысл моей инициативы - поддержать донатами тех авторов, кого вы посчитаете нужным и у кого будут возможности для этого на сайте.

Тонкая настройка .zshrc при использовании oh-my-zsh
Пример настройки популярной оболочки для Linux - ZSH. Речь идёт о расширении функциональности с помощью oh-my-zsh. Я, кстати, не любитель настраивать оболочки. Всё время пользуюсь bash, а все изменения сводятся к настройке некоторых алиасов. Я даже prompt (строка-приглашение перед вводом команды) не настраиваю, использую по умолчанию.

🔥 Передаём логи в Graylog с помощью Rsyslog
Передача на сервер Graylog логов от серверов Linux и роутеров Mikrotik. Саму установку и настройку Graylog автор рассматривал отдельно. Graylog - это альтернатива ELK Stack и Loki. Он проще в настройке, чем ELK, но под капотом там тот же elasticsearch.

Платформа для управления секретами Infisical
Установка и базовая настройка централизованной open source платформы для управления секретами.

🔥 Организация файловых бэкапов с удаленным хранилищем с помощью restic
Интересная инструкция по использованию Restic для бэкапов. В качестве сервера используется rest-server, а в качестве агентов на хостах - resticker.

Planka. Развёртывание. В Docker-контейнерах. С помощью Ansible-ролей
Инструкция по установке Planka - очень близкий аналог Trello.

🔥 Поднимаем OpenConnect SSL VPN сервер (ocserv) в docker
Очень подробная инструкция по установке, настройке и эксплуатации OpenConnect сервера. Автору и всем остальным, кто пишет публичные статьи, рекомендую не использовать слово VPN. Можно получить предупреждение и требование от РКН статью удалить. Там работает какой-то бот по ключевым словам. Вы можете получить предупреждение, даже если ваш материал никак не связан с обходом блокировок. Увы, но такова сейчас реальность.

Запуск консоли сервера 1С без прав администратора
Небольшой хак по запуску MMC-консоли в винде без прав админа.

Разворачиваем PostgreSQL кластер с помощью autobase. Часть 1
Первая статья из цикла по установке и настройке кластера PostgreSQL с помощью autobase. Это продукт на базе Patroni. Раньше репозиторий носил название postgresql_cluster, сейчас переименовали в Autobase и оформили в коммерческий продукт.

Если кто-то хочет присоединиться к этой подборке, то пишите мне в личные сообщения. Пока список выглядит так:

▪️https://r4ven.me
▪️https://wiki-it.ru
▪️https://www.gurin.ru
▪️https://sysadminhub.ru
▪️https://devopslife.ru
▪️https://bite-byte.ru
▪️https://sysadminium.ru
▪️https://desoft.ru
▪️https://www.pc360.ru
▪️https://bafista.ru
▪️https://it-experience.ru
▪️https://blogadminday.ru
▪️https://marukhin.ru

#статьи
3👍103👎4
Небольшая заметка на тему Zabbix Server на основе своего опыта. Иногда бывает ситуация, особенно после системных обновлений, когда ты перезагружаешь сервер, а он зависает. Тебя отрубает от SSH, виртуалка висит в неопределённом состоянии, приходится принудительно завершать работу. Проблема актуальна, когда мониторинг и СУБД живут на одной машине.

Смысл проблемы в том, что процесс с СУБД завершает свою работу раньше, чем Zabbix Server. И он пытается достучаться до базы, которая уже выключилась. А серверу надо туда свои кэши или буферы скинуть перед остановкой. И он не может. Пытается, но не может. В итоге все службы завершают работу, в том числе SSH, а Zabbix Server всё ещё висит и держит всю систему.

Сколько времени он может пробыть в таком состоянии - не знаю, не проверял. Обычно минут 10 повисит и я принудительно завершаю работу виртуалки. Так как СУБД завершает свою работу штатно, к проблемам это ни разу не приводило.

Так что перезагружая виртуалку с Zabbix Server, я сначала вручную завершаю работу мониторинга:

# systemctl stop zabbix-server

А потом уже набираю

# reboot

По этой проблеме был заведён баг на официальном трекере мониторинга. Проблему решили перечислением зависимостей в systemd юните zabbix-server.service. Добавили параметр After и перечислили службы СУБД, от которых зависит служба Zabbix Server. Если я правильно понял, то этот параметр указывает на то, что служба мониторинга запускается после службы СУБД и эта же настройка управляет завершением работы, но в обратном порядке. То есть сначала завершается служба мониторинга, а потом уже СУБД.

Если у вас используется версия СУБД, которая не перечислена в системном юните, то вы по-прежнему можете получить эту ошибку. Выглядит это примерно так:

After=mysql.service
After=mysqld.service
After=mariadb.service

Если у вас используется PostgreSQL, то задача усложняется. Там службы СУБД указаны с номерами версий. Для юнита Zabbix это выглядит так:

After=postgresql-9.4.service
After=postgresql-9.5.service
After=postgresql-9.6.service
After=postgresql-10.service
After=postgresql-11.service
After=postgresql-12.service
After=postgresql-13.service
After=postgresql-14.service
After=postgresql-15.service
After=postgresql-16.service

Соответственно, если у вас имя службы СУБД выглядит как-то иначе, получите описанную проблему, если не обновите юнит сами.

В общем, я со стародавних времён привык сначала останавливать мониторинг, убеждаться, что он остановлен, а потому уже перезапускать сервер.

Соблюдаю это правило для всех систем, где есть зависимость от службы СУБД. Например, на серверах с 1С + PostgreSQL всегда сначала вручную останавливаю службу 1С, а потом уже выполняю какие-то другие действия - обновление, перезагрузка и т.д. Баг с заббиксом приучил так действовать просто на всякий случай.

#zabbix #ошибка
👍179👎4
Небольшая практическая шпаргалка, которая с большой долей вероятности пригодится, если работаете с текстом в консоли Linux или каких-то других редакторах. Я взял для примера VSCode и Notepad++, с которыми сам работаю. Последний по старой памяти. Особой нужды в нём нет, но он, как и Total Commander, навечно прописался в моём компьютере.

Добавить в конец каждой строки переход на новую строку

🟡 С помощью sed:

# sed 's/$/\n/' file.txt > new_file.txt

Заменили анкор $, означающий конец строки на специальный символ \n - новая строка.

🟡 С помощью VSCode:

Открываем окно поиска и замены через Ctrl + H. В строке поиска пишем $ и жмём кнопку .*, что означает использование регулярных выражений. В качестве замены указываем /n и жмём заменить всё.

🟡 С помощью Notepad++:

Открываем окно поиска через Ctrl + F, переходим на вкладку замена. Ищем \r, заменяем на \n. Режим поиска ставим Расширенный.

По аналогии можно добавить в конец любой другой символ. Я взял переход на новую строку как наиболее сложный вариант замены.

Добавить символы в начало каждой строки

🟢 С помощью sed:

# sed 's/^/+7/' file.txt > new_file.txt

Добавили фразу +7 в начало каждой строки.

🟢 С помощью VSCode:

Открываем окно поиска и замены через Ctrl + H. В строке поиска пишем ^ и жмём кнопку .*, что означает использование регулярных выражений. В качестве замены указываем +7 и жмём заменить всё.

🟢 С помощью Notepad++:

Открываем окно поиска через Ctrl + F, переходим на вкладку замена. Ищем ^, заменяем на +7. Режим поиска ставим Регулярные выражения.

Оба упомянутых анкора ^$ вместе означают пустую строку. Можно так же заменять или удалять пустые строки. Актуально для больших конфигов, которые хочется почистить. Примерно так:

# sed '/^#\|^;\|^$/d' php.ini
# grep -E -v '^#|^;|^$' php.ini

Отобразили конфиг без строк, начинающихся с # , ; и пустых строк.

Кстати, я первый вопрос с sed решил задать chatgpt. И на удивление, он мне дал неправильный ответ на такой простой вопрос. Добавил лишнее экранирование. Не понимаю, как он некоторым программировать помогает или шаблоны для Zabbix пишет. Я как не обращусь к нему, регулярно получаю ошибки. Если ты не в теме, то эти ошибки сложно исправлять.

По этой теме у меня уже была ранее заметка, только с акцентом на grep, а не изменение данных. Если не видели, рекомендую посмотреть и сохранить. Там много примеров из моей практики.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#bash
1👍128👎2
Смотрел на днях вебинар Rebrain на тему настройки ELK Stack. Дело было вечером, я доделывал свои дела и в пол уха слушал рассказ лектора. Потом переключился на вебинар и стал следить. Я, кстати, рекомендую эти вебинары. Иногда смотрю.

В какой-то момент заметил, что структура и содержание конфигов Logstash очень мне знакомы. Я для удобства разделяю параметры input, output и filter. Да и в целом всё как-то очень похоже на то, что я обычно делаю. Когда дело дошло до индексов, заметил там свои привычные шаблоны.

Лектор переместился в браузер и там я увидел вкладки со своей статьёй. Стало понятно, почему мне всё было знакомо. Статью последний раз обновлял года полтора назад. Она несильно устарела, так что ей вполне можно пользоваться.

Вчера её полностью проверил, кое-что добавил, обновил. Развернул по статье весь стек на Debian 12. Получилось в режиме copy-paste для самой свежей версии на текущий момент - 8.17.0.

Доступ к репозиториям elastic закрыт с IP адресов РФ, поэтому для того, чтобы можно было копипастом настраивать по статье, сделал свой репозиторий. Вчера же обновил его до самых свежих версий. Можно пользоваться:

Установка и настройка Elasticsearch, Logstash, Kibana (ELK Stack)
http://elasticrepo.serveradmin.ru

Если не знакомы с продуктом, то этой статьи будет достаточно, чтобы начать с ним работать. Там помимо непосредственно инструкций очень много пояснений. Возможно, они покажутся немного сумбурными. Эту статью я обновлял уже 5 раз и практически полностью переписывал 2 раза. ELK Stack очень часто обновляется и меняется. Трудно всё это увязывать в едином объёмном материале.

#elk
5👍243👎3
This media is not supported in your browser
VIEW IN TELEGRAM
Ютуб подкинул в рекомендации. Я первый раз посмотрел, не понял, в чём прикол. Только со второго раза дошло, что спросили не ИМЯ, а КАК ТЕБЯ ЗОВУТ. Анонимный сотрудник тех. поддержки признался, что его зовут так: "Принтер не печатает, подойди, пожалуйста".

▶️ https://www.youtube.com/shorts/jxtp22gZ5ME

Когда-то давно меня тоже так звали. А ещё:

- Файл не открывается, помоги, пожалуйста
- В принтере бумага застряла
- Почему-то мышка не работает
- У меня пароль не подходит, помоги зайти
- Компьютерный стул сломался
- Я ничего не делал, оно само

#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍193👎8
Посоветую вам один полезный ресурс, который содержит информацию на тему поиска работы, собеседований, резюме:

https://easyoffer.ru

На сайте собраны вопросы с собеседований по разным направлениям в IT. На конкретные вопросы, не касающиеся личности кандидата, есть примерные ответы и ссылки на видео с ютуба, где этот вопрос обсуждается либо в собеседовании, либо просто где-то в разборе.

В отдельном разделе собраны записи реальных или смоделированных интервью, а так же советы по ним, выложенных в разных каналах от разных авторов. То есть это не работа автора сайта, а просто каталог по публичным видео. Вот примеры собеседований DevOps.

В отдельном разделе собраны требования для различных вакансий в порядке их популярности в резюме. Автор парсит hh и выстраивает топ требований по частоте их упоминаний.

В целом на сайте ничего особенного нет, но удобно всё организовано для быстрого просмотра. Часть контента скрыта, а чтобы посмотреть его весь достаточно подписаться на несколько каналов автора в Telegram.

#обучение
👍105👎10
Я в разное время обозревал наиболее популярные продукты для упрощения установки ОС на железо или виртуальные машины с помощью создания универсальных загрузочных флешек или образов для установки по сети или через интернет. Вот о чём я писал:

◽️Ventoy - создание флешки с набором образов ОС
◽️YUMI – Multiboot USB Creator - аналог ventoy
◽️netboot.xyz - универсальный образ для установки систем через интернет
◽️FOG Project - PXE или TFTP сервер с веб интерфейсом
◽️Cobbler - PXE + DHCP + DNS сервер. Более функциональный аналог FOG.
◽️MAAS - PXE сервер от авторов Ubuntu, расшифровывается как Metal-As-A-Service.

Для полноты картины не хватало одного продукта, до которого всё не доходили руки - iVentoy. Это промежуточный вариант между масштабными системами автоматической раскатки систем типа Cobbler и MAAS и локальным Ventoy. То есть это Ventoy с установкой систем по сети с помощью технологии PXE. Устанавливается и настраивается максимально просто. Не нужно долго разбираться, изучать и настраивать. Просто берёшь и запускаешь. Покажу как он работает.

Для примера возьму в качестве хостовой системы, где будет запущен PXE сервер, Windows. Также есть версия под Linux. Для установки системы из ISO образа по сети нужно:

1️⃣ Скачать из репозитория архив с программой iventoy-1.0.20-win64-free.zip.
2️⃣ Распаковать программу. В директорию iso скопировать набор образов, которые вы хотите использовать в качестве загрузочных. Я пробовал и с Linux, и с Windows.
3️⃣ Запустить программу. Автоматически откроется браузер с веб интерфейсом по адресу 127.0.0.1:26000.
4️⃣ Настраиваете либо локальный DHCP сервер, который входит в состав iventoy, либо на своём внешнем указываете в качестве PXE сервера IP адрес машины, где запускаете iventoy. Сам iventoy может выступать в качестве простого DHCP сервера. Достаточно указать в его настройках основные параметры - диапазон IP адресов, адрес шлюза и DNS сервера.
5️⃣ Если используете свой текущий DHCP сервер, то вам необходимо настроить параметр Next Server или 066 DHCP Option и Bootfile Name или 067 DHCP Option. Просто укажите IP адрес машины с iventoy и имя файла. В Mikrotik, в настройках DHCP параметр так и называется - Next Server. А с Bootfile есть один нюанс, связанный с использованием режимов Legacy BIOS и UEFI. Я не буду пересказывать инструкцию, а просто покажу, где и как этот вопрос решается. Там относительно просто, надо только выбрать тот режим, что вам больше подходит. iVentoy умеет отрабатывать оба этих режима, secure boot не поддерживает.
6️⃣ Запускаете клиентскую машину и выбираете там загрузку по сети. Где-то может быть отдельный параметр в BIOS, который разрешает использовать PXE для загрузки.
7️⃣ Запускаете машину, выбираете один из загруженных ранее образов в iso папку и устанавливаете систему.

Я попробовал работу только с виртуальными машинами. Нормально установилась и система с Windows, и с Linux.

iVentoy максимально простая система из всех подобных. Нет никаких особых настроек и возможностей. Просто запуск установки из списка загруженных образов ISO. А в них уже можете сами настраивать всё, что вам нужно.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#pxe
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍222👎4
2025/07/13 22:03:21
Back to Top
HTML Embed Code: