FeranyDev

FeranyDev

使用阿里雲盤的Emby視頻站

需要準備的東西#

  • 一個帶有的公網伺服器
  • 一個域名
  • 一個暢通的網路
  • 一雙靈巧的手
  • 一個健康正常的腦子

我推薦使用 docker 安裝畢竟可以免去不是的配置問題

docker#

直達鏈接

以 Ubuntu 為例#

  • 你也可以使用一鍵腳本安裝
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run
  • 手動安裝
  1. 先卸載舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 更新 apt 包索引和安裝要使用 apt 包
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
  1. 添加 Docker 的官方 GPG 密鑰
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  1. 設置存儲庫
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 更新 apt 索引
sudo apt-get update
  1. 安裝 Docker Engine、containerd 和 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 測試
sudo docker run --rm hello-world

能正常輸出不報錯就算安裝成功了

  • 善後
    添加當前用戶到 docker 組免去 sudo
sudo usermod -aG docker $USER
exit

Alist#

官方文檔

安裝#

docker run -d --restart=always \
  --name="alist" \
  -v /etc/alist:/opt/alist/data \ #'/etc/alist'本機映射路徑可以設置到自己習慣的位置
  -p 5244:5244 \ #如果不想映射到公網,可以使用-p 127.0.0.1:5244:5244 由於Rclone 也在docker裡面 可能得加上 -p 172.17.0.1:5244:5244
  xhofe/alist:latest

配置#

跳轉官方文檔足夠詳細

Rclone#

  • 你可能需要先安裝 fuse
sudo apt-get install fuse

安裝#

生成配置文件#
docker run -it --rm \
  -v /etc/rclone:/config/rclone \
  rclone/rclone \
  config
  1. 創建新的配置
    圖片
  2. 設置配置名稱
    圖片
    可以使用其他後面的 運行 rclone 中的 mount Rclone 需要保持一致
  3. 選擇協議
    圖片
    一般都是 webdav
  4. 設置主機地址
    圖片
    一般指向 docker 網關即可
  5. 選擇 webdav 服務類型
    圖片
    Alist 推薦我們選擇 nextcloud
  6. 輸入用戶名
    圖片
  7. 輸入
    圖片
    一般選擇 y 使用自己的密碼
    然後輸入兩次密碼,輸入不會有提示
  8. token 和高級配置
    圖片
    留空和默認即可
  9. 檢查
    圖片
    核對無誤 y 保存
  10. 完成
    圖片
    創建完成 q 退出即可
運行 rclone#
docker run -itd --name rclone \
  # cpu數量限制不是必須的,如果出現rclone異常佔用可以使用限制。
  --cpuset-cpus="1" \
  -v /etc/rclone:/config/rclone \
  -v /mnt/rclone:/data:shared \
  --device /dev/fuse \
  --cap-add SYS_ADMIN \
  --security-opt apparmor:unconfined \
  rclone/rclone \
  mount Rclone:/ /data --umask 0000 --vfs-cache-mode full --default-permissions --allow-non-empty --allow-other --buffer-size 1G --dir-cache-time 6h --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G  --vfs-cache-max-size 20G

--vfs-cache-max-size 20G 最大緩存大小根據自己的磁碟空間大小進行修改

解除掛載#

一般來說 docker stop rclone 後默認會解除掛載,如果解除失敗可以使用:fusermount -qzu /mnt/掛載路徑 強制解除。

視頻站#

Emby 安裝#

docker run -itd \
  --restart always \
  --name emby \
  -v /etc/emby:/config \
  -v /mnt/rclone:/rclone \
  -p 8096:8096 \
  -e TZ=Etc/UTC+8 \
  --device /dev/dri:/dev/dri \
  linuxserver/emby:latest

Jellyfin 安裝#

docker run -itd \
  --name=jellyfin \
  -e TZ=Etc/UTC+8 \
  -p 8096:8096 \
  -v /etc/jellyfin:/config \
  -v /mnt/rclone:/rclone \
  --restart always \
  --device /dev/dri:/dev/dri \
  linuxserver/jellyfin:latest

配置#

基本配置就不贅述了
主要涉及幾個自動掃描功能會導致 雲盤風控 高網路佔用什麼的

  1. 簡介標記
    圖片
  2. 計劃任務
    圖片
    這五個中會自動生成計劃任務並且長時間大量佔用資源,建議手動刪除。

映射公網#

推薦使用 Nginx 或其他反代伺服器,不建議使用 emby 和 jellyfin 內部的 https 服務

申請 TLS 證書#

  1. 安裝 acme.sh
    官方文檔
curl https://get.acme.sh | sh -s [email protected]
  1. 使用 acme.sh 簽 TLS 證書 cloudflare 版本
export CF_Token="token"
export CF_Account_ID="ID"
export CF_Zone_ID="ID"
cd ~/.acme.sh
./acme.sh --issue -d ex.com -d *.ex.com --server letsencrypt --dns  dns_cf

Account_ID 和 Zone_ID 為
圖片
Token 直接使用模板:編輯區域 dns,即可;區域選擇自己的域名
圖片

Nginx#

編寫配置文件#

sudo mkdir /etc/nginx
sudo vi /etc/nginx/nginx.conf

i 進入編輯模式

pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections 512;
}

http {
    ssl_certificate /etc/ssl/let/fullchain.pem;
    ssl_certificate_key /etc/ssl/let/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    resolver 8.8.8.8 1.1.1.1 valid=60s;

    # gzip
    gzip            on;
    gzip_vary       on;
    gzip_proxied    any;
    gzip_comp_level 6;
    gzip_types      text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 104.16.0.0/12;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 131.0.72.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    set_real_ip_from 2400:cb00::/32;
    set_real_ip_from 2606:4700::/32;
    set_real_ip_from 2803:f800::/32;
    set_real_ip_from 2405:b500::/32;
    set_real_ip_from 2405:8100::/32;
    set_real_ip_from 2c0f:f248::/32;
    set_real_ip_from 2a06:98c0::/29;
    real_ip_header CF-Connecting-IP;
    real_ip_recursive on;
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name emby.ex.com;
        # server_name emby4.ex.com; # 默認不需要
        # server_name emby6.ex.com; # 默認不需要
        error_page 497 =301 https://$host:$server_port$request_uri;

        location / {
            proxy_pass http://127.0.0.1:8096/;

            proxy_set_header HOST $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }

}

按 Esc 輸入 :wq 回車退出

安裝#

sudo touch /etc/nginx/nginx.conf
docker run -itd --restart always  --name nginx --network host \
  -v /path/fullchain.cer:/etc/ssl/let/fullchain.pem:ro \
  -v /path/ex.com.key:/etc/ssl/let/privkey.pem:ro \
  -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
  nginx

你需要將/path/path/ex.com.key 修改為 acme.sh 告訴你的路徑

媒體文件直連#

Cloudflare 設置#

  1. 選擇規則中的重定向規則
    圖片
  2. 如果不需要 v4、v6 分流只需要創建一個規則且紅框圈住的不需要
  • 以下為 v4
    圖片
    圖片
  • 以下為 v6
    圖片
    圖片

Nginx 設置#

咕咕咕

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。