Было бы круто иметь медиасервер, на который можно загружать фильмы. Торрентом или иным другим путём, просматривая их через андройд или прямо в браузере. При этом не заботиться о нехватке производительности.
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
Теперь можно открыть смартфоном адрес своего сервера, скопировать ссылку на фильм и отрыть поток в плеере.
Плеер более оптимизирован для просмотра чем браузер или онлайн сервис. К тому же сервер имеет малое потребление ресурсов.
---------------------------------------------------------------
Статья доступна в качестве ознакомления и не является инструкцией побуждающей к действию.