Как я себе медиасервер сделал
Захотелось мне как-то кино смотреть на любом компе и со смартфона, да чтобы и ночами, и комп в комнате не шумел, как собой, так и жёстким диском. Решил сделать себе медиасервер, простенькое файловое хранилище и всё такое прочее.
Взял старый комп, установил на него Proxmox для удобства работы. На бпшник не обращайте внимания, это временный роутер сверху лежит без корпуса.
Как установить Proxmox есть в интернете, ничем неотличается от установки обычной ОС. После установки доступно по локальной сети. Из советов, не забудьте сменить репозиторий на бесплатный, а как, опять же подскажет гугл.
ДИСКЛЕЙМЕР: Всё можно сделать проще на одном ubuntu-server установленном прямо на комп, но мне лично нужны виртуалки и возможность работы через Shell вбраузере. Я не буду описывать стандартные действия.
После установки proxmox я смонтировал ZFS в режиме SingleDisk на 4ТБ жёсткий диск, купленный на авито за 3 тысячи рублей.
По SSH в proxmox смонтировал Samba папку public по этому гайду .Можно и просто примонтировать диск к виртуалке на которой медиасервер будет крутиться, но я хотел иметь файловую шару на самом проксмоксе. Может это не лучшее решение, но там ничего важного и мне так удобно. Может быть, уважаемые сисдаминопидоры подскажут лучшие решения в комментах.
Подключил шару в винде
Создал папку Кино и закинул туда фильмов
Скачал ubuntu-server и развернул виртуалку ubuntu-server, закинув ISO образ в proxmox. За подробностями опять же в гугл.
Подключился по SSH, установил поддержку cifs.
sudo apt install cifs-utils
Добавил папку куда будет монтироваться сетевой диск
mkdir Media
Подключил сетевой диск в /etc/fstab
sudo mount-a
Далее он будет монтироваться при запуске системы
Установил docker и docker compose
Создал docker-compose.yml файл
nano docker-compose.yml
В volumes указал папку Media, куда смонтирован сетевой диск
version: "3.7"
services:
jellyfin:
container_name: jellyfin
image: cr.hotio.dev/hotio/jellyfin
ports:
- "8096:8096"
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=Europe/Moscow
restart: always
volumes:
- /home/ubuntu/jellyfin/config:/config
- /home/ubuntu/Media:/media
Ctrl+S сохранить
Ctrl+X выйти
sudo docker compose up -d для запуска
Jellyfin уже доступен в локальной сети
Ip address чтобы узнать какой ip адресв локальной сети
В браузере вводим локальный ip из предыдущегошага и порт
У меня 192.168.0.26:8096
Там вас ждёт довольно простая настройка Jellyfin
После этого внутри локальной сети уже можно пользоваться,вводя в браузере адрес сервера. Можно поменять в docker-compose.yml порт с 8096:8096на 80:8096, чтобы заходить по айпи без порта и добавить себе в hosts файл(окей гугл hosts файл windows)запись типа:
192.168.0.26 jellyfin.local иликакой вам хочется адрес
Тогда с вашей windows он будет доступен по этому адресу
Также, если ваш роутер поддерживает ARP, можно будет зайти по имени компьютера,которое было задано при установке.
Я купил себе белый IP и домен и, так как я ещё не прошарилсякак делать роутинг по поддоменам, сделал редирект через Nginx на proxmox, могу рассказать, если будетзапрос.
Делаем ещё интереснее, подключаем торрент
Я развернул его прямо на proxmox, мне так было удобнее, так как там имеется прямой доступк ZFSдиску
Подключился по SSH к proxmox
Установил docker и docker-compose
Создал docker-compose.yml файл
В volumes указал папку с zfs public
version: "2.1"
services:
deluge:
image: lscr.io/linuxserver/deluge:latest
container_name: deluge
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- DELUGE_LOGLEVEL=error #optional
volumes:
- /root/deluge:/config
- /zfs1/public:/downloads
ports:
- 8112:8112
- 6881:6881
- 6881:6881/udp
restart: always
Ctrl+S сохранить
Ctrl+X выйти
sudo docker compose up -d для запуска
По адресу 192.168.0.25:8112 захожу в deluge, пароль deluge подефолту
В настройках указал куда загружать
Добавил модуль autoadd
Теперь из шары в папке torrents автоматически подтягиваются торрент-файлы,которые я туда закинул
Так же рекомендую поставить плагин Execute исделать такую настройку
chmod -R 777 downloads/Кино
Это нужно для того, чтобы права на работу с папками были у всех приложений и пользователей
На этом всё. Был бы рад, если бы кто-то пояснил по-русски как сделать роутинг на основе something.mysite.ru в pfsense.
Подробнее
1 ^ ■** % « fr 1 Æw >у 1 • # V «
X PRO МО < Virtual Environment 7 3-3 Saarch Ser.ec Vtev* Node proxmox- И OMCMW Q Search Wc pcoxmox ÇÏ- 100 (ubontu-sorver) В Summary 102 (ubuntu-<te*k1op) □ Note* 103 (ubuntv-<te*fc1op) >_ Site! 101 (ubuntu-<te*ktop2| 101 (tfMUop) Oí SyWeen SQhdj (proxmox) — NaCftOrt; §Q local (proxmox) • Certificate* Щ Q local-Krn (proxmox) §Q**d (proxmox) V» DNS <? How* О Option* О Tim« !■ Systog C Update* ® Reposorio* C Firewall a owe* ■ LVM □ LVM-Thin * Directory o Reoad Create ZFS OtCaJ Namet
PT \\192.168.0.25 -р\\192.168.0.25 (л \\192.168.0.25\public
Открыть Открыть в новой вклад** Открыть в новом окне Закрепить на панели быстрс Добавить в плейлист VLC О Git GUI Неге Git Bash Неге Воспроизвести в VLC 7-йр CRC SHA - Проверка с использованием Показывать эту папку на раб Всегда доступны вне сети <Р Скопировать ссылку на Я ид« Восстановить прежнюю вер Закрепить на начальном jKf Подключить сетевой диск...
il /etc/fstab: static file systen information. ■ » use 'blkid' to print the universally unique identifier for a » device; this nay be used with UUIO= as a more robust way to name devices » that works even if disks arc added and removed. See fstab(5). « » <file syste«> <nount point> <type> <options> <duwp> <pass> » / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation /dev/disk/by-id/dB-uuid-LVH-8eJ6h0€onskVGAqL2XGHlc92QDaxCeq71bwtKbVteKnpYV8YztSJveHS7WZnaZ2T / ext« defaults 6 1 » /boot was on /dev/sda2 during curtin installation /dev/disk/by-uuid/78«8efA8-68a3-u5dd-b8cl-9b8Sfl36af«5 /boot ext« defaults 8 1 /swap.iwq_______none swap sw____________8________el___________________________
ubuntu(gubuntu:-$ ip address 1: lo: <LOOPBACK,UP,LOWER_UP> ntu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid.lft forever preferred_lft forever inet6 ::1/128 scope host valid.lft forever preferred_lft forever 2: ensl8: BROADCAST,MULTICAST,UP,LOWER_UP> ntu 1500 qdisc fq.codel state UP group default qlen 1000 link/ether 2a:ff:f7:eb:92:2f brd ff:ff:ff:ff:ff:ff altnanc cnp0s!8__________ inet netric 100 brd 192.168.0.255 scope global dynanic ensl8 valid_lft 628lsec preferred_lft 6281sec inet6 fe80::28ff:f7ff:feeb:922f/6U scope link valid.lft forever preferred_lft forever 3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> ntu 1«20 qdisc noqueue state UNKNOWN group default qlen 1000
Folders Загружать в: /downloads/incomplete Перемещать загруженные файлы в: 0 /downloads/Кино Копировать файлы .torrent в: 0 ,/downloads/torrents/copied
^ Параметры Загрузки Включен Модуль Сеть Шифрование № AutoAdd т Blocklist Ограничения Интерфейс LZJ т Execute Прочее о Extractor Служба о Label Добавить в очередь Прокси о Notifications Кэш о Scheduler Модули № Stats AutoAdd О Toggle Blacklist О WebUi Execute Install л /4 n. f) Find More
Активе* владелец Path 0 tocakfcei* «ownloadVtofrenH X Параметры Загруз** Сеть Шифрование Ограничение Интерфейс Прочее Служба Добавит* в о-еред* Прокси Кхи Модули Edit Watch folder X Main Настройку Watch Folder /downtoads/torrents 0 Enable the watch folder Torrent file Action О Delete .torrent after adding О Append extension after adding: ® Копировать файлы .torrent e: /downloads,'torrents/cc □ Delete copy of torrent file on remove Каталог для загрузок □ Set download folder /downloads/mcomplete Move Completed 0 Set move completed folder /downioads/Киио
Параметры Загрузки Сеть Шифрование Ограничения Интерфейс Прочее Служба Добавить в очередь Прокси Кэш Модули AutoAdd Blocklist Execute Event Command Torrent Complete chmod -R 777 downloads/Кино
geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,своими руками,jellyfin
Про домен буду рад почитать. У себя сделал локальную рабочую группу и прописал на днс сервере её, в принципе все работает и даже для подключенных по впн пользователей тоже все по доменным именам доступно, но чужой опыт лишним не будет.
У меня 2011-3 зеончик, и он не умеет в аппаратное декодирование
И есть затычка gt730 которая отлично 2к-видосики переваривает
Но каждый месяц платить, чтобы софтина работала с железкой, это както жирно
А какое облако использовал? Хочется чего то простого, редко используемого, типа передать гиговый файл прямой временной ссылкой.
Купил домен, купил статический ip у провайдера (50р в месяц), пробросил домен на айпи.
Пробросил 80 порт на Proxmox в роутере, поднял на нём nginx. В nginx прописал:
server {
listen 80;
server_name watch.mydomain.ru;
location / {
proxy_pass http://192.168.0.26:8096/;
proxy_redirect off;
proxy_set_header Host 192.168.0.26;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
И теперь jellyfin доступен через watch.mydomain.ru
{
email my@mail.ru
}
watch.mydomain.ru {
reverse_proxy 192.168.0.26:8096
}
почта нужна чтобы Let's Encrypt привязал сертификаты к ней и слал туда уведомления, в случае необходимости. подтверждать не надо.
сертификаты для SSL Caddy подтянет сам из Let's Encrypt и будет автоматом обновлять по прошествии половины (вроде, точно не помню) срока годности сертификата
Надоело самоподписные постоянно хватать
если последний вопрос про нат панчинг (потому что я не пони), то юзай какой-нибудь тейлскейл и будет полпинковое щиастье
A320M-K
24 гига оперативки (8+16)
на проксмоксе работает без видюхи
Раньше был на i3-2100 и 8 гигов оперативки
Или просто комп достался за 0 рублей?
А сон как настроен? ~90 ват из розетки 24/7 как то не ок чтоли...
Еще одна машина в доме, еще одни телодвижения для наполения "картотеки" что бы "что?" что бы разок посмотреть и забыть этот кинчик или сериальчик. Так стриминг же лучше с этим справиляется(с разовым просмотром)
Сайт платный, но база аниме огромная и в хорошем качестве (FullHD, 4K). Заливают версии без цензуры сразу как появляются. Плюсом есть синхронизация с shikimori.
Ну и выбор любого звука и субтитров
А рекламы всяких казино как правило на любительских озвучках, которые на 1-2 дня раньше дубляжа/проф.студий всплывают
Выкрои 3 доллара из своего бюджета, и возьми один раз подписку на месяц. Глядишь потом сам будешь их так же рекламировать)
У меня DS720+ + Plex Premium - ничего плохого про такую связку сказать не могу. Стоит коробочка в тумбочке, гудит себе тихонечко.
1. Воткнул жд в кейсе в маршрутизатор Keenetic.
2. Настроил торрент и расшарил папку.
3. Profit.
+ от меня jellyfin поддерживает внешние аудиодорожки и плагины
В свою очередь медиасервер это софт, который, во-первых, сам по себе вечно налагает какие-то ограничения по функционалу, во-вторых, его работа зависит от мощности железа (а тут и вопрос энергосбережения встает), да и с тем же телевизором его надо как-то скрещивать...
Мне казалось медиасерверы появились в то время, когда тяжелый контент уже появился, но не каждый телек мог его декодировать, и можно было для этого использовать как-раз железо медиасервера, но в чем профит сейчас?
1) Поставить VLC
хорошая попытка, товарищ майор
1. litr.cc отслеживает обновление по добавленным торрентам
2. qBittorrent подписан на rss ленту от litr.cc и с обновлением качает торрент
3. Jellyfin смотрит на папку куда качает торрет и обновляет медикатеку.
И если у меня просто фильм или уже вышедший сериал, то я просто качаю. Медиатека автоматический обновляется и я захожу с любого устройства на jellyfin и смотрю. Если сериал ещё только выходит, то добавляю торрент на него в litr.cc и с выходом новых серий они сразу появятся в jellyfin и тоже без проблем с любого устройства смотрю.
mount-a - тут пробел забыл. Что будет если сервер ребутнется, а шара будет не доступна? (подскажу про autofs)
Ip address = ip a
разве не надо systemctl enable docker , systemctl start docker ?
Если сервер ребутнется, то как раз первым стартует проксмокс с самбой, а потом уже всё остальное. Но я рад буду послушать про лучшие практики
Про докер пусть читают в интернете
Для каждой машины например в виндоус сервер 2022 обязательно нужна лицензия?
Не будет ли это решение избыточным для домашней сети из 3-4 стареньких пк?
Имею 3 древних ПК, на 7 и 10 винде, и они требуют обновления, так как были современными более 10 лет назад, видео проигрывают нормально, офисные программы и браузер работают приемлемо.
Средствами располагаю для обновления только одного пк или сборки нового, так как от старых только корпус можно использовать.
Я рассматривал вариант подключения всех мониторов к одному системному блоку, в чем есть свои ограничения, например по длине кабеля.
Какое техническое решение будет оптимальным для моих хотелок?
If you can see it on your PC, you can stream it using Moonlight, including your full Windows desktop at 4K with HDR on a capable client.
Разворачиваешь, там инструкция есть, есть видео от линуса, но, в общем-то, запускаешь через Powershell ISE (от админа) Pre checks, он покажет тебе видюху. Потом открываешь второй скрипт CopyFilesToVM и вбиваешь туда всю нужную инфу. Таких файликов можешь создать сколько тебе нужно и раскидать ресурсы по надобностям. Понадобится один раз, чтобы создать вмку. Дальше ты их просто через Hyper-V менеджера запускаешь или ставишь автолоад
Потом ставишь себе Parsec, регаешься. Желательно расшарить на компе какую-то папочку с дистрибутивами. Я не ебался с виртуалками, а сделал её доступной из сети и из вмки подключался к сетевой папке, накатывал Parsec и нужные мне программы. После установки в режиме VNC, ставишь Parsec в автозапуск и перезагружаешь, должно ок работать и подключаться из парсека. Если проблемы с разрешением монитора, то я использовал Custom Resolution Utility (CRU) для перезагрузки графического драйвера и установки разрешения монитору. Ещё понадобилось накатить C++ библиотеки, потому что игры без них не запускались.
Деньги тебе понадобятся на апгрейд по оперативке и может быть прикупить ещё видюху. Утилита точно работает, начиная с 20** поколения нвидии, что там с 1*** я хз
В общем-то, вот, по парсеку можно подключаться хоть с мобилки, хоть откуда-то и использовать отдельную винду. Я таких две за раз разворачивал, было ок, проц особо не напрягается чаще всего.
Кстати, парсек без впна не качается, ссучились, пидоры
Так вот есть один мужик Tteck, он сделал за нас всю работу https://tteck.github.io/Proxmox/ . Обмажь свой домашний сервер десятками сервисов одной командой.
Есть даже целая компания которая делает уже готовые решения Turnkey https://www.turnkeylinux.org/ . Под сотню контейнеров разной направленности. LAMP, БД, вордпресы\друпалы, домен контроллер, файлопомойка, медиасервер и т.п.
Теперь шумит медиасервер, да?