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 を選択して自分のパスワードを使用します。
    その後、パスワードを 2 回入力しますが、入力時に提示はありません。
  8. トークンと高度な設定
    画像
    空白のままでデフォルトで大丈夫です。
  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. スケジュールタスク
    画像
    この 5 つの中で自動的にスケジュールタスクが生成され、大量のリソースを長時間占有しますので、手動で削除することをお勧めします。

公開マッピング#

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 の分流が必要ない場合は、1 つのルールを作成するだけで、赤枠で囲まれた部分は必要ありません。
  • 以下は v4
    画像
    画像
  • 以下は v6
    画像
    画像

Nginx の設定#

ぐぐぐ

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。