aria2 Docker Compose + AriaNg 24時間常時稼働サーバー構築
高性能かつ 24時間ノンストップで稼働するヘッドレス aria2 ダウンロードサーバーを構築。洗練された AriaNg Web パネル、BT トラッカー自動更新、自宅 NAS へのシームレスな保存を実現します。
1. 3層コンテナマイクロサービス構成
本番環境の aria2 Docker 環境は、軽量な Alpine コンテナ上で動く3つのモジュールで構成されます:
1. コアエンジン (aria2-pro)
高 IOPS メモリキャッシュ、複数プロトコル対応(HTTP/FTP/BT)、ポート 6800 で待機する WebSocket JSON-RPC を搭載。
2. トラッカー自動同期
GitHub から毎日最新の有効 BT トラッカーリストを自動取得・注入し、0 KB/s の接続停止を完全に防ぎます。
3. AriaNg WebUI パネル
ポート 6880 で動作する洗練された HTML5 レスポンシブ Web 管理画面。PC、スマホ、タブレットからいつでも操作可能。
2. 本番用 docker-compose.yml 設定ファイル
以下の構成を docker-compose.yml として保存し、デプロイ先フォルダ(例: /opt/aria2/ や /volume1/docker/aria2/)に配置します:
version: '3.8'
services:
aria2-pro:
container_name: aria2-pro
image: p3terx/aria2-pro:latest
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
environment:
- PUID=1000
- PGID=1000
- RPC_SECRET=YourSuperSecureToken99! # 安全なパスワードに変更
- RPC_PORT=6800
- LISTEN_PORT=6888
- TRACKERS_AUTO_UPDATE=true # BTトラッカーを毎日自動更新
- DISK_CACHE=64M # ディスク保護用RAMキャッシュ
- IPV6_MODE=false # IPv6環境の場合は true に設定
- TZ=UTC
volumes:
- ./aria2-config:/config # 設定・セッション保存先
- ./downloads:/downloads # ダウンロード保存先
ports:
- "6800:6800" # RPC WebSocket / HTTP API
- "6888:6888" # BitTorrent TCP peer discovery
- "6888:6888/udp" # BitTorrent DHT UDP peer discovery
ariang:
container_name: ariang
image: p3terx/ariang:latest
restart: unless-stopped
ports:
- "6880:6880" # WebUI Dashboard
depends_on:
- aria2-pro
主要な環境変数の解説:
PUID / PGID:ダウンロード完了ファイルの権限を設定し、Plex、Jellyfin、Samba などの他アプリからの読み書きエラーを防止します。DISK_CACHE=64M:メモリ上に書き込みキャッシュを確保し、HDD/SSD への過剰な細切れ書き込みを抑え寿命を延ばします。LISTEN_PORT=6888:BitTorrent の着信ポートです。ルーターで6888 TCP/UDPをポート開放すると高速化します。
3. プラットフォーム別セットアップ手順
A. Linux サーバー (Ubuntu / Debian / AlmaLinux / Raspberry Pi)
ディレクトリを作成し、所有権を設定してコンテナを起動します:
mkdir -p /opt/aria2/{aria2-config,downloads}
cd /opt/aria2
# Copy docker-compose.yml into /opt/aria2/
sudo chown -R 1000:1000 /opt/aria2
docker compose up -d
B. Synology NAS (DSM 7.2+ Container Manager)
- File Station で
/docker/aria2/configと/volume1/downloadsを作成します。 - Container Manager → プロジェクト → 作成 を開きます。
- プロジェクト名:
aria2、パス:/docker/aria2、ソース: docker-compose.yml を作成 を選択。 - 設定コードを貼り付け、完了 をクリックすれば自動構築・起動します。
C. QNAP Container Station と Unraid
QNAP では アプリケーション → 作成 に貼り付け。Unraid では Compose プラグインを使用します。
4. HTTPS リバースプロキシと安全な外部アクセス
HTTPS 経由で AriaNg を利用する場合、暗号化されていない 6800 ポートへの通信はブラウザの仕様(Mixed Content)でブロックされます。SSL WebSocket (WSS) リバースプロキシを設定してください:
server {
listen 443 ssl http2;
server_name aria2.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# 1. Route WebUI Frontend
location / {
proxy_pass http://127.0.0.1:6880;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# 2. Route JSON-RPC Secure WebSocket (WSS)
location /jsonrpc {
proxy_pass http://127.0.0.1:6800/jsonrpc;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400;
}
}
5. ダウンロード完了後の自動化フック(Rclone / 自動解凍)
aria2 は on-download-complete フックに対応しており、完了時に自動でクラウドへ転送したりアーカイブを展開できます:
フックの動作仕様:
./aria2-config/clean.sh 内で $1 (GID)、$2 (ファイル数)、$3 (ファイルパス) が渡されます。
6. トラブルシューティング & FAQ
Q1: コンテナのリアルタイムログを確認するには?
docker compose logs -f aria2-pro を実行すると、接続状態やトラッカー更新ログを確認できます。
Q2: BitTorrent の速度が 0 KB/s のまま進まないときは?
対処法: ルーターで 6888 UDP を開放し、当サイトの トラッカーハブ から最新トラッカーを追加してください。
Q3: "AriaNg disconnected" と表示され接続できないときは?
対処法: AriaNg 設定の RPC ホスト(サーバーIP)、ポート(6800)、シークレットトークンが一致しているか確認してください。