Найти в Дзене
Red Rain

Медиа сервер Void Linux #3x combo

Было бы круто иметь медиасервер, на который можно загружать фильмы. Торрентом или иным другим путём, просматривая их через андройд или прямо в браузере. При этом не заботиться о нехватке производительности. Nginx Самый простой способ раздать фильмы по сети. Установка xbps-install -S nginx ln -s /etc/sv/nginx /var/service mkdir /usr/share/nginx/html/transmission chmod 777 /usr/share/nginx/html/transmission Запишем в файл /etc/nginx/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; aio on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; server { listen 192.168.1.16:80; server_name 192.168.1.16; location / { root /usr/share/nginx/html; deny all; } location /transmission { root /usr/share/nginx/html; autoindex on; charset UTF-8; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
Оглавление

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

Nginx

Самый простой способ раздать фильмы по сети.

Установка

xbps-install -S nginx
ln -s /etc/sv/nginx /var/service
mkdir /usr/share/nginx/html/transmission
chmod 777 /usr/share/nginx/html/transmission

Запишем в файл /etc/nginx/nginx.conf

worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
aio on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
server {
listen 192.168.1.16:80;
server_name 192.168.1.16;
location / {
root /usr/share/nginx/html;
deny all;
}
location /transmission {
root /usr/share/nginx/html;
autoindex on;
charset UTF-8;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}

Где 192.168.1.16 ip адрес сервера. По адресу 192.168.1.16 доступ запрещён, доcтруп будет к адресу 192.168.1.16/transmission

Transmission-daemon

Установка

xbps-install -S transmission
mkdir /etc/transmission-daemon

Нужно настроить классический запуск демона.
Приведя файл
/etc/sv/transmission-daemon/run к виду

#!/bin/sh
exec chpst -u transmission:transmission transmission-daemon -f --config-dir /etc/transmission-daemon -w /usr/share/nginx/html/transmission/

Запускаем и останавливаем демон.

ln -s /etc/sv/transmission-daemon /var/service
chmod +x /etc/sv/transmission-daemon/run
mkdir /etc/transmission-daemon && chmod 777 /etc/transmission-daemon
sv restart transmission-daemon
sv stop transmission-daemon

Файл /etc/transmission-daemon/settings.json создастся автоматически.

В нём нужно указать

"rpc-password": "Пароль пользователя",
"rpc-username": "Имя пользователя",
"rpc-whitelist-enabled": false,
"umask": 0,

Samba share

Установка

xbps-install samba
ln -s /etc/sv/nmbd /var/service
ln -s /etc/sv/smbd /var/service

Приведём /etc/samba/smb.conf к виду:


[global]
unix extensions = no
wide links = yes
follow symlinks = yes
log level = 0
load printers = no
client min protocol = SMB2
wins support = no
bind interfaces only = Yes
interfaces = 192.168.1.16
unix charset = utf8
log file = /var/log/samba/log.%m
max log size = 1000
panic action = /usr/share/samba/panic-action %d
usershare allow guests = Yes
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
security = USER
server role = standalone server
unix password sync = Yes
dns proxy = No
[DATA]
comment = Data Cache
path = /home/user1/DATA
create mask = 0666
directory mask = 0777
force create mode = 0777
force directory mode = 0777
force user = user1
inherit permissions = Yes
read only = No
valid users = user1

В качестве пользователя у нас user1, ip сервера 192.168.1.16

Перезагрузим демоны

sv restart nmbd && sv restart smbd

Создадим и активируем пользователя samba

smbpasswd -a user1
smbpasswd -e user1
mkdir /home/user1/DATA && chmod 777 /home/user1/DATA
ln -s /usr/share/nginx/html/transmission /home/user1/DATA/transmission

Приведём /etc/sysctl.conf к виду:

net.ipv4.ip_forward = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.neigh.default.gc_thresh1 = 256
net.ipv4.neigh.default.gc_thresh2 = 1024
net.ipv4.neigh.default.gc_thresh3 = 2048
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
vm.swappiness = 0
vm.overcommit_memory = 1
vm.overcommit_ratio = 100
vm.oom-kill = 0
vm.vfs_cache_pressure = 1000
vm.dirty_ratio = 60
vm.dirty_background_ratio = 1
vm.dirty_writeback_centisecs = 60000
vm.dirty_expire_centisecs = 60000
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_syncookies = 0
net.core.optmem_max = 25165824
net.ipv4.udp_rmem_min = 16384
net.ipv4.udp_wmem_min = 16384
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 65535
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.ip_default_ttl = 64
net.ipv4.ip_dynaddr = 0
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.ipfrag_time = 30
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_adv_win_scale = 2
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_ecn = 0
net.ipv4.tcp_fack = 1
net.ipv4.tcp_stdurg = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.all.shared_media = 0
net.ipv4.ip_nonlocal_bind = 1

Перезагружаем сервер. И теперь можно монтировать samba.

mount -t cifs -o file_mode=0777,dir_mode=0777,username=пользователь,password=пароль,iocharset=utf8 //192.168.1.16/DATA /mnt/DATA

Теперь можно загружать торренты через web интерфейс transmission-daemon

http://192.168.1.16:9091/

Загруженные файлы сразу будут доступны по адресу

http://192.168.1.16/transmission/

И по samba share в /mnt/DATA/transmission

Теперь можно открыть смартфоном адрес своего сервера, скопировать ссылку на фильм и отрыть поток в плеере.

Плеер более оптимизирован для просмотра чем браузер или онлайн сервис. К тому же сервер имеет малое потребление ресурсов.

-2

---------------------------------------------------------------

Статья доступна в качестве ознакомления и не является инструкцией побуждающей к действию.