Docker Compose తో Prowlarr, Sonarr, Radarr సెటప్
ఒకే Docker Compose ఫైల్లో Prowlarr, Sonarr, Radarr మరియు qBittorrent ఎలా సెటప్ చేయాలో తెలుసుకోండి. హార్డ్లింక్లు పనిచేసేలా సరైన PUID, PGID మరియు వాల్యూమ్ లేఅవుట్ను కాన్ఫిగర్ చేయండి.
మీరు ఏమి నిర్మిస్తున్నారు
Docker Compose arr స్టాక్ అనేది మీడియా లైబ్రరీని నిర్వహించే నాలుగు కంటైనర్ల సమూహం: ఇండెక్సర్ సెట్టింగ్ల కోసం Prowlarr, సిరీస్ల కోసం Sonarr, సినిమాల కోసం Radarr, మరియు డౌన్లోడ్ క్లయింట్గా qBittorrent. ఇవి Compose నెట్వర్క్ ద్వారా సర్వీస్ పేరుతో ఒకదానితో ఒకటి కమ్యూనికేట్ చేసుకుంటాయి మరియు హోస్ట్ మెషీన్పై ఒకే ఫోల్డర్ ట్రీని పంచుకుంటాయి. దీని ఇన్స్టాలేషన్ ప్రక్రియ చిన్నది. ఈ స్టాక్ ఏళ్ల తరబడి సజావుగా పనిచేస్తుందా లేదా ప్రతి వారం సమస్యలను కలిగిస్తుందా అనేది మీరు సెట్ చేసే వాల్యూమ్ లేఅవుట్పై ఆధారపడి ఉంటుంది, అందుకే ఈ గైడ్లో ఎక్కువ భాగం దాని గురించే ఉంటుంది.
ఈ స్టాక్ మీ కోసం కంటెంట్ను వెతకదు. మీరు జోడించే ఇండెక్సర్లను Prowlarr నిల్వ చేస్తుంది, ఏ ఇండెక్సర్లను ఉపయోగించాలనేది మీ నిర్ణయం మరియు మీ చట్టపరమైన బాధ్యత. ఈ గైడ్ ప్లంబింగ్ అంశాలను కవర్ చేస్తుంది: యూజర్లు, పాత్లు, పర్మిషన్లు, కంటైనర్ నెట్వర్కింగ్, మరియు ఇది పనిచేస్తుందని నిర్ధారించే పరీక్షలు.
మీరు ఇంతకుముందు ఎప్పుడూ Compose ఫైల్ను రాయకపోతే, ముందుగా Docker Compose ప్రాథమిక అంశాలు VPS కోసం చదవండి. ఈ పోస్ట్ మీ సర్వర్లో docker compose version ఇప్పటికే ఏదైనా అవుట్పుట్ను చూపిస్తుందని భావిస్తుంది.
హార్డ్లింక్లు ఎందుకు విఫలమవుతాయి మరియు వాటి ప్రాముఖ్యత ఏమిటి
Sonarr ఒక డౌన్లోడ్ను పూర్తి చేసినప్పుడు, అది ఫైల్ను మీ లైబ్రరీలోకి ఇంపోర్ట్ చేస్తుంది. డౌన్లోడ్ ఫోల్డర్ మరియు లైబ్రరీ ఫోల్డర్ ఒకే ఫైల్సిస్టమ్పై ఉంటే, ఆ ఇంపోర్ట్ ఒక హార్డ్లింక్ అవుతుంది: ఇది డిస్క్లోని ఒకే డేటాను సూచించే రెండవ పేరు. దీనికి అదనపు స్థలం లేదా సమయం అవసరం లేదు. మీ మీడియా సర్వర్ కొత్త పేరుతో ఫైల్ను చదువుతున్నప్పుడు, టొరెంట్ పాత పేరుతో సీడింగ్ను కొనసాగిస్తుంది.
ఈ రెండు ఫోల్డర్లు వేర్వేరు ఫైల్సిస్టమ్లపై ఉంటే, కెర్నల్ ఆ లింక్ను సృష్టించలేదు. అప్పుడు Sonarr కాపీ చేసే పద్ధతికి మారుతుంది. దీనివల్ల 40 GB సీజన్ ఇప్పుడు 80 GB డిస్క్ స్థలాన్ని ఆక్రమిస్తుంది మరియు ఇన్పుట్/అవుట్పుట్ కోసం కొన్ని నిమిషాల సమయం పడుతుంది. హార్డ్లింక్ విఫలమైందని మరియు దానికి బదులుగా ఫైల్ కాపీ చేయబడిందని ఇంపోర్ట్ లాగ్ నమోదు చేస్తుంది. పరిమిత డిస్క్ సామర్థ్యం ఉన్న VPSలలో, ఇలాగే ఒక వారంలోనే డిస్క్ స్థలం నిండిపోతుంది.
ఇక్కడే అసలు సమస్య ఉంది. కంటైనర్ లోపల, బైండ్ మౌంట్ అనేది ఒక ఫైల్సిస్టమ్ సరిహద్దుగా పనిచేస్తుంది. /mnt/data/torrentsని /downloadsగా మరియు /mnt/data/mediaని /tvగా మౌంట్ చేసినప్పుడు, అవి రెండూ ఒకే హోస్ట్ డిస్క్పై ఉన్నప్పటికీ, Sonarr వాటిని రెండు వేర్వేరు మౌంట్లుగా చూస్తుంది మరియు వాటి మధ్య లింక్ చేయడానికి నిరాకరిస్తుంది. అధికారిక LinuxServer.io ఇమేజ్ డాక్యుమెంటేషన్ దీనిని స్పష్టంగా పేర్కొంది: వేర్వేరు /downloads మరియు /tv పాత్లను ఉపయోగించడం వల్ల హార్డ్లింక్ చేసే సామర్థ్యాన్ని కోల్పోతారు.
దీనికి పరిష్కారం ఒకే మౌంట్. మీడియాను యాక్సెస్ చేసే ప్రతి కంటైనర్కు ఒకే వాల్యూమ్, /mnt/data:/dataని కేటాయించాలి మరియు అవి ఉపయోగించే ప్రతి పాత్ దాని లోపల ఉన్న ఒక ఫోల్డర్ అయి ఉండాలి. ఒకే మౌంట్ పాయింట్, ఒకే ఫైల్సిస్టమ్ ఉంటేనే హార్డ్లింక్లు పనిచేస్తాయి.
వినియోగదారు, సమూహం మరియు ఫోల్డర్లను సృష్టించండి
కంటైనర్లు PUID మరియు PGID ద్వారా సెట్ చేయబడిన సంఖ్యాపరమైన యూజర్ ఐడితో ఫైళ్లను వ్రాస్తాయి. మీరు sudo అవసరం లేకుండానే SSH ద్వారా ఆ ఫైళ్లను చదవడానికి మరియు సవరించడానికి వీలుగా మీ స్వంత ఖాతాను ఉపయోగించండి.
id -u
id -gసాధారణంగా కొత్త Ubuntu VPSలో ఇవి రెండూ 1000 అని చూపిస్తాయి. ఇప్పుడు డైరెక్టరీ నిర్మాణాన్ని రూపొందించండి. దీన్ని మీ మీడియా ఉన్న డిస్క్లో ఉంచండి మరియు మొత్తం నిర్మాణాన్ని అదే డిస్క్లో ఉంచండి.
sudo mkdir -p /mnt/data/torrents/movies /mnt/data/torrents/tv
sudo mkdir -p /mnt/data/media/Movies /mnt/data/media/Shows
sudo chown -R 1000:1000 /mnt/data
sudo chmod -R 775 /mnt/dataమీరు ముందుకు వెళ్లే ముందు అది ఒకే ఫైల్సిస్టమ్ అని నిర్ధారించుకోండి:
df --output=source,target /mnt/data/torrents /mnt/data/mediaరెండు లైన్లు ఒకే సోర్స్ పరికరాన్ని చూపాలి. రెండు వేర్వేరు పరికరాలు ఉంటే, కంటైనర్ కాన్ఫిగరేషన్లో మీరు ఏమి సెట్ చేసినా హార్డ్లింక్లు పనిచేయవు.
లైబ్రరీ ఫోల్డర్లకు ఉద్దేశపూర్వకంగానే Movies మరియు Shows అని పేరు పెట్టడం జరిగింది. మీరు ఇప్పటికే మీ మీడియా సర్వర్గా Jellyfin ఉపయోగిస్తుంటే, /mnt/data/mediaని Jellyfinలో /mediaగా మౌంట్ చేయండి. అప్పుడు దాని లైబ్రరీలు /media/Movies మరియు /media/Shows వద్దకు చేరుతాయి, అంటే ఆ గైడ్ ఎక్కడ సూచించిందో సరిగ్గా అక్కడే ఉంటాయి.
ఎన్విరాన్మెంట్ ఫైల్
సర్వర్ను బట్టి మారే విలువలను .envలో, Compose ఫైల్కు పక్కనే ఉంచండి.
mkdir -p ~/arr && cd ~/arr~/arr/.envని ఇలా రాయండి:
PUID=1000
PGID=1000
TZ=Etc/UTC
DATA_ROOT=/mnt/dataTZని మీ జోన్కు అనుగుణంగా సెట్ చేయండి, ఉదాహరణకు Europe/Berlin. arr అప్లికేషన్లు ఆ జోన్లోనే పనులను షెడ్యూల్ చేస్తాయి మరియు లాగ్ లైన్లను స్టాంప్ చేస్తాయి, కాబట్టి తప్పు విలువను ఇస్తే తర్వాత ప్రతి లాగ్ అర్థం చేసుకోవడం కష్టమవుతుంది.
Compose ఫైల్
~/arr/docker-compose.ymlని ఇలా వ్రాయండి:
services:
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ./config/prowlarr:/config
ports:
- 127.0.0.1:9696:9696
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ./config/sonarr:/config
- ${DATA_ROOT}:/data
ports:
- 127.0.0.1:8989:8989
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ./config/radarr:/config
- ${DATA_ROOT}:/data
ports:
- 127.0.0.1:7878:7878
restart: unless-stopped
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- WEBUI_PORT=8080
- TORRENTING_PORT=6881
volumes:
- ./config/qbittorrent:/config
- ${DATA_ROOT}:/data
ports:
- 127.0.0.1:8080:8080
- 6881:6881
- 6881:6881/udp
stop_grace_period: "10s"
restart: unless-stoppedఆ ఫైల్లో నాలుగు అంశాలు ప్రధానంగా పనిచేస్తున్నాయి.
మీడియాను యాక్సెస్ చేసే మూడు కంటైనర్లలో ${DATA_ROOT}:/data ఒకేలా ఉంటుంది. Prowlarr ఎప్పుడూ మీడియా ఫైల్ను తెరవదు కాబట్టి, దానికి ఇది అవసరం లేదు.
ప్రతి వెబ్ పోర్ట్ 127.0.0.1కి బైండ్ చేయబడింది, కాబట్టి Docker దీనిని కేవలం లూప్బ్యాక్ అడ్రస్పై మాత్రమే ప్రచురిస్తుంది. సాధారణ 8989:8989ని ఉపయోగిస్తే అది ప్రతి ఇంటర్ఫేస్పై ప్రచురించబడుతుంది, అప్పుడు Docker యొక్క సొంత ఫైర్వాల్ నియమాలు ఆ ట్రాఫిక్ను నేరుగా ufw deny నియమం దాటి పంపిస్తాయి. ఈ ప్రవర్తన వినియోగదారులను తరచుగా ఆశ్చర్యపరుస్తుంది, దీని గురించి Docker ఎందుకు ufw ద్వారా పోర్ట్లను ప్రచురిస్తుంది అనే విభాగంలో వివరించబడింది.
6881 పోర్ట్ ఉద్దేశపూర్వకంగానే అన్ని ఇంటర్ఫేస్లపై ప్రచురించబడింది. ఇది టొరెంట్ లిజనింగ్ పోర్ట్, కాబట్టి ఇన్కమింగ్ పీర్ కనెక్షన్ల కోసం ఇది అందుబాటులో ఉండాలి. దీనిని sudo ufw allow 6881తో అనుమతించండి, ఒకవేళ ఈ కమాండ్ మీకు కొత్త అయితే VPS కోసం ufw ఫైర్వాల్ ప్రాథమికాంశాలు చదవండి.
కాన్ఫిగరేషన్ డైరెక్టరీలు ప్రతి అప్లికేషన్కు విడివిడిగా ఉంటాయి, కేవలం మీడియా వాల్యూమ్ మాత్రమే షేర్ చేయబడుతుంది. వీటిని మొదటిసారి ప్రారంభించే ముందే సృష్టించండి, తద్వారా ఇవి rootకు బదులుగా మీ యూజర్ ఆధీనంలో ఉంటాయి:
mkdir -p ~/arr/config/prowlarr ~/arr/config/sonarr ~/arr/config/radarr ~/arr/config/qbittorrent
docker compose up -d
docker compose psనాలుగు సర్వీసులు runningని రీడ్ చేయాలి. జూలై 2026 నాటికి ఈ ఇమేజ్లు lscr.ioలో ప్రచురించబడ్డాయి మరియు latest ట్యాగ్ ప్రస్తుత స్టేబుల్ రిలీజ్ను అనుసరిస్తుంది. ఒకవేళ మీరు అప్గ్రేడ్లను ఆకస్మికంగా కాకుండా, మీ నిర్ణయం మేరకు చేసుకోవాలనుకుంటే, ఒక నిర్దిష్ట వెర్షన్ ట్యాగ్ను పిన్ చేయండి.
వెబ్ ఇంటర్ఫేస్లను సురక్షితంగా చేరుకోవడం
పోర్ట్లు లూప్బ్యాక్ (loopback)లో ఉన్నందున, ఏవీ ఇంకా బహిర్గతం కాలేదు. మీ స్వంత మెషీన్ నుండి SSH ద్వారా వాటిని ఫార్వర్డ్ చేయండి:
ssh -L 9696:127.0.0.1:9696 -L 8989:127.0.0.1:8989 \
-L 7878:127.0.0.1:7878 -L 8080:127.0.0.1:8080 you@your-serverఇప్పుడు మీ బ్రౌజర్లో http://127.0.0.1:8989 ద్వారా సర్వర్లోని Sonarrని చేరుకోవచ్చు. శాశ్వత ప్రాప్యత కోసం, ఈ స్టాక్ను అనేక యాప్ల కోసం TLS సర్టిఫికేట్లతో Traefik వెనుక ఉంచండి, లేదా మీరు స్వయంగా హోస్ట్ చేసే WireGuard VPN ద్వారా సర్వర్ను చేరుకోండి. ఈ అప్లికేషన్లలో ఏవీ కేవలం వాటి స్వంత లాగిన్ పేజీతో పబ్లిక్ ఇంటర్నెట్లో ఉండకూడదు.
qBittorrent మొదటిసారి ప్రారంభమైనప్పుడు ఒక యాదృచ్ఛిక అడ్మినిస్ట్రేటర్ పాస్వర్డ్ను రూపొందించి, దానిని కంటైనర్ లాగ్లో ప్రింట్ చేస్తుంది. దానిని చదివి, వెబ్ ఇంటర్ఫేస్లో మార్చండి:
docker compose logs qbittorrent | grep -i passwordఒకవేళ మీరు ఈ మార్పును చేయకపోతే, ప్రతి రీస్టార్ట్ సమయంలో కొత్త యాదృచ్ఛిక పాస్వర్డ్ రూపొందించబడుతుంది, మరియు మీరు ప్రతిసారీ లాగ్లను చూడాల్సి వస్తుంది.
ప్రతి అప్లికేషన్లో పాత్లను సెట్ చేయండి
qBittorrentలో, Options తెరిచి, ఆపై Downloads ఎంచుకుని, డిఫాల్ట్ సేవ్ పాత్ను /data/torrentsకి సెట్ చేయండి. incomplete-downloads ఫోల్డర్ను అదే ట్రీలో, ఉదాహరణకు /data/torrents/incompleteలో ఉంచండి. /data వెలుపల ఎక్కడైనా పూర్తయిన డౌన్లోడ్ను లైబ్రరీలోకి హార్డ్లింక్ చేయడం సాధ్యపడదు.
Sonarrలో, Settings తెరిచి, ఆపై Media Management ఎంచుకుని, రూట్ ఫోల్డర్ /data/media/Showsని జోడించండి. Radarrలో రూట్ ఫోల్డర్ /data/media/Movies. ఇవి కంటైనర్ లోపల ఉండే పాత్లు. హోస్ట్ పాత్ /mnt/data/media/Shows తిరస్కరించబడుతుంది, ఎందుకంటే కంటైనర్ దృక్కోణం నుండి ఆ డైరెక్టరీ ఉనికిలో లేదు.
Sonarr మరియు Radarr రెండింటిలోనూ, Settings తెరిచి, ఆపై Download Clients ఎంచుకుని, qBittorrentని జోడించండి. హోస్ట్ qbittorrent మరియు పోర్ట్ 8080. Compose అన్ని నాలుగు కంటైనర్లను ఒకే నెట్వర్క్లో అంతర్గత DNS (domain name system) సర్వీస్తో ఉంచుతుంది కాబట్టి, సర్వీస్ పేరు హోస్ట్నేమ్గా పనిచేస్తుంది. ఇక్కడ localhostని ఉపయోగించవద్దు: Sonarr కంటైనర్ లోపల, localhost అంటే Sonarr అని అర్థం.
Remote Path Mappingsని ఖాళీగా వదిలేయండి. డౌన్లోడ్ క్లయింట్ నివేదించే పాత్ను arr అప్లికేషన్ చూడగలిగే పాత్లోకి మార్చడానికి ఆ ఫీచర్ ఉంటుంది. ఒకే షేర్డ్ /data మౌంట్తో, రెండు కంటైనర్లు ఇప్పటికే ప్రతి పాత్ విషయంలో ఏకీభవిస్తాయి, ఈ లేఅవుట్ కోసం ప్రయత్నించడానికి ఇది రెండవ కారణం.
Prowlarr ను Sonarr మరియు Radarr లకు అనుసంధానించడం
Prowlarr ఇండెక్సర్ నిర్వచనాలను ఇతర అప్లికేషన్లకు పంపుతుంది, కాబట్టి మీరు ఒక ఇండెక్సర్ను రెండుసార్లు కాకుండా ఒకేసారి కాన్ఫిగర్ చేస్తే సరిపోతుంది. దీని కోసం ప్రతి అప్లికేషన్ నుండి ఒక API (application programming interface) కీ అవసరం.
Sonarr లో, Settings తెరిచి, ఆపై General కి వెళ్లి, API కీని కాపీ చేయండి. Prowlarr లో, Settings తెరిచి, ఆపై Apps కి వెళ్లి, ఒక Sonarr అప్లికేషన్ను జోడించి, మూడు ఫీల్డ్లను నింపండి. Prowlarr Server అనేది http://prowlarr:9696. Sonarr Server అనేది http://sonarr:8989. API Key అనేది మీరు కాపీ చేసిన విలువ. Test బటన్ను నొక్కండి. ఆకుపచ్చ రంగు ఫలితం వస్తే, Prowlarr అనేది Compose నెట్వర్క్ ద్వారా Sonarr ను చేరుకోగలిగిందని అర్థం. ఇదే విధంగా http://radarr:7878 వద్ద Radarr తో కూడా చేయండి.
కనెక్షన్ తిరస్కరించబడిందని ఎరుపు రంగు ఫలితం వస్తే, అది దాదాపు ఎల్లప్పుడూ తప్పు సర్వీస్ పేరు లేదా http:// ప్రిఫిక్స్ లేకపోవడం వల్ల జరుగుతుంది. కంటైనర్ లోపల నుండి పేరు రిజాల్వ్ అవుతుందో లేదో నిర్ధారించుకోండి:
docker compose exec prowlarr curl -sS -o /dev/null -w '%{http_code}\n' http://sonarr:8989HTTP స్టేటస్ కోడ్ నెట్వర్క్ పాత్ సరిగ్గా ఉందని నిరూపిస్తుంది. పేరు రిజల్యూషన్ లోపం సర్వీస్ పేరు తప్పుగా ఉందని నిరూపిస్తుంది.
హార్డ్లింక్లు పని చేస్తున్నాయని నిర్ధారించుకోవడం
లింక్ కౌంట్ను చూసే వరకు సెటప్ను నమ్మవద్దు. ఒక అంశాన్ని ఇంపోర్ట్ చేసిన తర్వాత, డౌన్లోడ్ చేసిన ఫైల్ను లైబ్రరీ ఫైల్తో పోల్చండి:
stat -c '%i %h %n' /mnt/data/torrents/tv/*/*.mkv
stat -c '%i %h %n' /mnt/data/media/Shows/*/*/*.mkvమొదటి సంఖ్య ఇనోడ్ (inode) మరియు రెండవది లింక్ కౌంట్. హార్డ్లింక్ చేయబడిన ఫైల్ రెండు చోట్లా ఒకే ఇనోడ్ను మరియు 2 లింక్ కౌంట్ను చూపుతుంది. రెండు వేర్వేరు ఇనోడ్లు ఉండి, ప్రతి దానికీ 1 లింక్ కౌంట్ ఉంటే, Sonarr ఫైల్ను కాపీ చేసిందని అర్థం. అప్పుడు ఇంపోర్ట్ లాగ్లో హార్డ్లింక్ విఫలమైందని కనిపిస్తుంది.
డిస్క్ వినియోగాన్ని కూడా గమనించండి. ఇంపోర్ట్ జరిగేటప్పుడు df -h /mnt/data దాదాపు మారకూడదు, ఎందుకంటే హార్డ్లింక్ కేవలం ఒక పేరును మాత్రమే జోడిస్తుంది, డేటాను కాపీ చేయదు.
వాస్తవానికి ఏమి విఫలమవుతుంది
ఇంపోర్ట్ చేసేటప్పుడు అనుమతి లోపాలు (permission errors) వస్తే, కంటైనర్ యొక్క యూజర్ ఐడి లైబ్రరీ ఫోల్డర్లోకి రాయలేదని అర్థం. ఆ సందేశం Access to the path ... is denied. ఓనర్ ఐడి మీ PUID తో సరిపోలుతుందో లేదో ls -ln /mnt/data/media తో తనిఖీ చేయండి. కంటైనర్ డైరెక్టరీలలోకి ప్రవేశించాలంటే వాటికి ఎగ్జిక్యూట్ బిట్ అవసరమని గుర్తుంచుకోండి.
ఫైళ్లు root యాజమాన్యంలో ఉన్నట్లు కనిపిస్తే, హోస్ట్ డైరెక్టరీ ఉనికిలోకి రాకముందే కంటైనర్ ప్రారంభమైందని అర్థం, కాబట్టి Docker దానిని root గా సృష్టించింది. స్టాక్ను ఆపివేసి, డైరెక్టరీని chown చేసి, ఆపై మళ్లీ ప్రారంభించండి.
qBittorrent నుండి టొరెంట్ను తొలగించినప్పుడు లైబ్రరీ ఫైల్ కూడా మాయమైతే, ఆ ఇంపోర్ట్ ఒక కాపీ అని, అది తర్వాత తొలగించబడిందని లేదా మీరు టొరెంట్ ఎంట్రీని కాకుండా డేటాను తొలగించారని అర్థం. నిజమైన హార్డ్లింక్ (hardlink) ఉన్నప్పుడు, ఒక పేరును తొలగించినా మరొకటి అలాగే ఉంటుంది, ఎందుకంటే లింక్ కౌంట్ సున్నాకి చేరుకున్నప్పుడు మాత్రమే డేటా తొలగించబడుతుంది.
మీరు జోడించిన మీడియా కంటే డిస్క్ వేగంగా నిండిపోతుందంటే, అది కాపీ సమస్య యొక్క అత్యంత ఖరీదైన రూపం. మీరు మరిన్ని స్టోరేజ్ కొనుగోలు చేసే ముందు పైన పేర్కొన్న stat తనిఖీని రన్ చేయండి.
ఈ స్టాక్ కోసం VPS నుండి అవసరమైనవి
మూడు arr అప్లికేషన్లు తక్కువ వనరులను వినియోగించుకుంటాయి. ఇవి ఇండెక్సర్లను పోల్ (poll) చేస్తాయి, చిన్న SQLite డేటాబేస్లో సమాచారాన్ని రాస్తాయి మరియు ఫైళ్లను రీనేమ్ చేస్తాయి. 2 GB RAM ఉన్న సర్వర్ నాలుగు కంటైనర్లను సులభంగా రన్ చేయగలదు. లోడ్ ఇతర కారణాల వల్ల పెరుగుతుంది. డౌన్లోడ్ క్లయింట్ పెద్ద టొరెంట్లను డౌన్లోడ్ చేస్తున్నప్పుడు డిస్క్ ఇన్పుట్ మరియు అవుట్పుట్ను పూర్తిగా వినియోగించుకుంటుంది. అదే సర్వర్లో మీడియా సర్వర్ వీడియోను ట్రాన్స్కోడ్ చేస్తుంటే, అది CPUని ఎక్కువగా వాడుకుంటుంది. మీడియాను మంచి త్రూపుట్ (throughput) ఉన్న వాల్యూమ్లో ఉంచండి. సర్వర్లో మీరు ఇతర ముఖ్యమైన పనులు చేస్తున్నట్లయితే, డౌన్లోడ్ క్లయింట్కు బ్యాండ్విడ్త్ పరిమితిని సెట్ చేయండి.
FAQ
Sonarr ఫైళ్లను హార్డ్లింక్ చేయడానికి బదులుగా ఎందుకు కాపీ చేస్తుంది?
కంటైనర్ దృక్కోణం నుండి మూలం (source) మరియు గమ్యస్థానం (destination) వేర్వేరు ఫైల్సిస్టమ్లలో ఉండటమే దీనికి కారణం. /downloads మరియు /tv వంటి రెండు వేర్వేరు బైండ్ మౌంట్లు, ఒకే హోస్ట్ డిస్క్ నుండి వచ్చినప్పటికీ రెండు వేర్వేరు ఫైల్సిస్టమ్లుగా పరిగణించబడతాయి. ప్రతి కంటైనర్లో ఒకే పేరెంట్ డైరెక్టరీని /dataగా మౌంట్ చేయండి, డౌన్లోడ్లు మరియు లైబ్రరీని దాని లోపల ఉంచండి, అప్పుడు లింక్ చేయడం సాధ్యమవుతుంది. రెండు ఫైళ్లపై stat -c '%i %h %n'ని ఉపయోగించి ఫలితాన్ని నిర్ధారించుకోండి: ఒకే inode మరియు 2 లింక్ కౌంట్ కనిపిస్తాయి.
నేను ఏ PUID మరియు PGIDని ఉపయోగించాలి?
మీడియా ట్రీని కలిగి ఉన్న హోస్ట్ ఖాతా యొక్క సంఖ్యాపరమైన ఐడిని ఉపయోగించండి, దీనిని మీరు id -u మరియు id -g ద్వారా పొందవచ్చు. కొత్త Ubuntu VPSలో సాధారణంగా రెండింటికీ 1000 ఉంటుంది. స్టాక్లోని ప్రతి కంటైనర్ ఒకే జతను ఉపయోగించాలి, లేకపోతే ఒక అప్లికేషన్ రాసిన ఫైళ్లను మరొకటి సవరించలేదు. విలువలను మార్చిన తర్వాత, docker compose up -d --force-recreateతో కంటైనర్లను మళ్లీ సృష్టించండి మరియు chown -Rతో ఇప్పటికే ఉన్న ఫైళ్లను సరిచేయండి.
నేను ఈ వెబ్ ఇంటర్ఫేస్లను ఇంటర్నెట్కు ఎక్స్పోజ్ చేయాలా?
వద్దు, మీరు అలా చేయకూడదు. Compose ఫైల్లో ప్రతి పబ్లిష్ చేసిన పోర్ట్ను 127.0.0.1కి బైండ్ చేయండి, ఆపై SSH టన్నెల్, VPN లేదా TLS (ట్రాన్స్పోర్ట్ లేయర్ సెక్యూరిటీ)ని ముగించి సొంత ప్రమాణీకరణను జోడించే రివర్స్ ప్రాక్సీ ద్వారా ఇంటర్ఫేస్లను యాక్సెస్ చేయండి. వీటిని నేరుగా పబ్లిష్ చేయడం ప్రమాదకరం, ఎందుకంటే Docker తన సొంత ఫైర్వాల్ నియమాలను చొప్పిస్తుంది మరియు ufw deny నియమం ఆ ట్రాఫిక్ను ఆపలేదు.
qBittorrent పాస్వర్డ్ను నేను ఎక్కడ కనుగొనగలను?
LinuxServer.io ఇమేజ్ దాని స్టార్టప్ లాగ్లో admin వినియోగదారు కోసం తాత్కాలిక పాస్వర్డ్ను ప్రింట్ చేస్తుంది. దానిని చదవడానికి docker compose logs qbittorrent | grep -i passwordని రన్ చేయండి, ఆపై Options మరియు Web UI కింద శాశ్వత పాస్వర్డ్ను సెట్ చేయండి. మీరు సొంతంగా సెట్ చేసే వరకు ప్రతి రీస్టార్ట్ సమయంలో కొత్త తాత్కాలిక పాస్వర్డ్ రూపొందించబడుతుంది.
Jellyfin ఒకే ఫోల్డర్లను ఉపయోగించగలదా?
అవును, ఈ లేఅవుట్ యొక్క ఉద్దేశ్యం అదే. /mnt/data/mediaని మీ మీడియా సర్వర్లో /mediaగా మౌంట్ చేయండి, అప్పుడు దాని లైబ్రరీలు /media/Movies మరియు /media/Shows వద్ద ఉంటాయి, అదే సమయంలో Sonarr మరియు Radarr /data/media ద్వారా అదే డైరెక్టరీలలోకి డేటాను రాస్తాయి. మీడియా సర్వర్కు కూడా అదే PUID మరియు PGID ఇవ్వండి, తద్వారా arr స్టాక్ రాసిన ఫైళ్లను అది చదవగలదు.