VPSలో Paperless-ngxను ఇన్స్టాల్ చేయడం ఎలా?
Docker Compose ఉపయోగించి VPSలో Paperless-ngxను ఎలా సెటప్ చేయాలో తెలుసుకోండి. Postgres డేటాబేస్, OCR లాంగ్వేజెస్, HTTPS కాన్ఫిగరేషన్ మరియు డేటా బ్యాకప్ వంటి ముఖ్యమైన అంశాల వివరణ.
మీరు ఏమి నిర్మిస్తున్నారు
VPS పై Paperless-ngx ను ఉపయోగించడం ద్వారా స్కాన్ చేసిన పత్రాల ఫోల్డర్ను వెతకడానికి వీలైన ఆర్కైవ్గా మార్చుకోవచ్చు. మీరు ఒక PDF ఫైల్ను వాచ్డ్ డైరెక్టరీలో ఉంచినప్పుడు, సర్వర్ దానిపై OCR (optical character recognition) రన్ చేస్తుంది, టెక్స్ట్ను సంగ్రహిస్తుంది, తేదీని మరియు పంపినవారిని అంచనా వేసి, ఫైల్ చేస్తుంది. ఈ ఇన్స్టాలేషన్ నాలుగు సర్వీసులతో కూడిన ఒకే Docker Compose ఫైల్. ఆ తర్వాత అంతా కాన్ఫిగరేషన్ మాత్రమే, మరియు ఈ గైడ్ ఎక్కువ భాగం దానికే కేటాయించబడింది, ఎందుకంటే ఇన్స్టాలేషన్లు అక్కడే విఫలమవుతాయి. ఇది ఫోటో లైబ్రరీ కాదు: OCR మరియు కరస్పాండెంట్ గెస్సింగ్ వంటివి హాలిడే JPEGల ఫోల్డర్కు ఏమాత్రం ఉపయోగపడవు, కాబట్టి వాటిని వాటి కోసం నిర్మించిన ఫోటో సర్వర్ లో ఉంచండి మరియు పేపర్ల కోసం Paperless ను మాత్రమే వాడండి.
Paperless-ngx అనేది అసలు Paperless ప్రాజెక్ట్కు community నిర్వహిస్తున్న fork. ఇది ఉచితం, self-hosted, మరియు మీ documents ను diskలో plain files గా నిల్వ చేస్తుంది. అందువల్ల మీ స్వంత archive కు మీరు ఎప్పటికీ ప్రాప్యత కోల్పోరు. దీన్ని ఇంటి కంప్యూటర్కు బదులుగా VPSపై నడిపితే, ఇంటి routerలో port తెరవకుండానే మీ scans ను ఎక్కడి నుంచైనా యాక్సెస్ చేయవచ్చు. కాగిత రూపంలో లేని files కోసం private Nextcloud instance తో ఇది బాగా పనిచేస్తుంది. మీ scanner అనుసంధానించిన desktopకూ ఇదే విధానం వర్తిస్తుంది. ఆ VPSపై మీ స్వంత RustDesk relay ఉంటే, routerలో hole తెరవకుండానే మీరు వేరే ప్రదేశం నుంచి ఆ machineను నియంత్రించవచ్చు.
స్టాక్ వాస్తవానికి ఏమి రన్ చేస్తుంది
అధికారిక compose ఫైల్ నాలుగు కంటైనర్లను ప్రారంభిస్తుంది. ప్రతి కంటైనర్ ఏమి చేస్తుందో తెలిస్తే, లాగ్స్ను అర్థం చేసుకోవడం సులభం అవుతుంది.
webserver: paperless-ngx ఇమేజ్. ఇది వెబ్ ఇంటర్ఫేస్, API, మీ ఇన్పుట్ ఫోల్డర్ను పర్యవేక్షించే కన్స్యూమర్ మరియు OCR చేసే Celery టాస్క్ వర్కర్లను రన్ చేస్తుంది.db: PostgreSQL. ఇది మెటాడేటా, ట్యాగ్లు, కరస్పాండెంట్స్ మరియు ఫుల్-టెక్స్ట్ సెర్చ్ ఇండెక్స్ టేబుళ్లను కలిగి ఉంటుంది. ఇది మీ PDF ఫైళ్లను నిల్వ చేయదు.broker: Valkey, ఇది Redis-అనుకూల కీ-వాల్యూ స్టోర్. ఇది వెబ్ ప్రాసెస్ మరియు వర్కర్ల మధ్య టాస్క్ క్యూగా పనిచేస్తుంది.gotenbergమరియుtika: ఇవి ఐచ్ఛికం, కేవలం-tikacompose వేరియంట్లలో మాత్రమే ఉంటాయి. ఇవి ఆఫీస్ డాక్యుమెంట్లను (.docx,.xlsx,.odt) PDFలుగా మారుస్తాయి, తద్వారా paperless వాటిని ఇండెక్స్ చేయగలదు.
జూలై 2026 నాటికి, postgres compose ఫైల్ docker.io/library/postgres:18 మరియు docker.io/valkey/valkey:9-alpine వెర్షన్లను పిన్ చేస్తుంది, మరియు అప్లికేషన్ను ghcr.io/paperless-ngx/paperless-ngx:latest నుండి పుల్ చేస్తుంది.
ముందస్తు అవసరాలు
- sudo యాక్సెస్ ఉన్న Ubuntu 24.04 KVM VPS, మరియు ఇప్పటికే ఇన్స్టాల్ చేయబడిన Docker Compose ప్లగిన్. ఈ అంశం మీకు కొత్త అయితే, ముందుగా VPS కోసం Docker Compose ప్రాథమిక అంశాలు చదివి తిరిగి రండి.
- మీ VPS కి పాయింట్ చేసే A రికార్డు కలిగిన డొమైన్ పేరు. Paperless తనకు తెలియని hostname పై సేవలను అందించదు, కాబట్టి మీరు ఊహించిన దానికంటే ముందే ఇది చాలా ముఖ్యం.
- మెమరీ అనేది ఇక్కడ ప్రధాన పరిమితి. PostgreSQL, Valkey, gunicorn మరియు Tesseract OCR వర్కర్ అన్నీ కలిపి తక్కువ వినియోగం కోసం 2 GB మెమరీలో సరిపోతాయి. మీరు వందల కొద్దీ స్కాన్లను ఒకేసారి ఇంపోర్ట్ చేయాలనుకుంటే 4 GB మెమరీని కేటాయించండి, ఎందుకంటే పెద్ద మల్టీ-పేజీ PDF లపై OCR చేసేటప్పుడు మెమరీ వినియోగం ఒక్కసారిగా పెరిగి, kernel out-of-memory killer ద్వారా వర్కర్ ప్రాసెస్ ఆగిపోయే అవకాశం ఉంది.
- డిస్క్: మీ ఆర్కైవ్ రెండుసార్లు నిల్వ చేయబడుతుంది, అంటే అసలు ఫైల్ మరియు OCR చేయబడిన ఆర్కైవ్ PDF. కాబట్టి మీ స్కాన్ల పరిమాణానికి సుమారు రెట్టింపు డిస్క్ స్థలాన్ని కేటాయించండి.
అధికారిక compose ఫైళ్లను పొందడం
ఇక్కడ ఒక ఇంటరాక్టివ్ ఇన్స్టాలర్ ఉంది:
bash -c "$(curl --location --silent --show-error https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"ఇది మిమ్మల్ని కొన్ని ప్రశ్నలు అడిగి, మీ కోసం ఫైళ్లను సిద్ధం చేస్తుంది. మాన్యువల్గా చేయడం వల్ల నాలుగు కమాండ్లతో పని పూర్తవుతుంది మరియు ప్రతి ఫైల్ ఎక్కడ ఉందో మీకు స్పష్టంగా తెలుస్తుంది; మీరు నిర్వహించే సర్వర్లో ఇదే ఉత్తమమైన పద్ధతి.
mkdir -p ~/paperless && cd ~/paperless
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.postgres.yml
curl -fsSL -o docker-compose.env https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.env
curl -fsSL -o .env https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.envదీని వేరియంట్లు ఒకే డైరెక్టరీలో ఉంటాయి: docker-compose.sqlite.yml, docker-compose.mariadb.yml, మరియు ప్రతిదానికీ ఒక -tika వెర్షన్. కొత్త ఇన్స్టాలేషన్ కోసం postgres ను ఎంచుకోండి. కొన్ని వందల డాక్యుమెంట్ల వరకు SQLite సరిపోతుంది, కానీ PostgreSQL తో పోలిస్తే full-text search ఇండెక్స్ త్వరగా నెమ్మదిస్తుంది.
.env ఫైల్ ఒకే లైన్ను కలిగి ఉంటుంది, అదే COMPOSE_PROJECT_NAME=paperless. ఆ పేరు ప్రతి కంటైనర్ మరియు వాల్యూమ్కు ప్రిఫిక్స్గా మారుతుంది, కాబట్టి దాన్ని తొలగించి, ఆ తర్వాత docker compose down -v మీ డేటాను ఎందుకు కనుగొనలేకపోతుందో అని ఆశ్చర్యపోకండి.
మొదటిసారి ప్రారంభించే ముందు docker-compose.env ని కాన్ఫిగర్ చేయండి
రెండు సెట్టింగ్లు తప్పనిసరి. ప్రాజెక్ట్ డాక్యుమెంటేషన్లో సూచించిన కమాండ్తో secret key ని రూపొందించండి:
python3 -c "import secrets; print(secrets.token_urlsafe(64))"ఆ తర్వాత docker-compose.env ని ఎడిట్ చేయండి:
PAPERLESS_SECRET_KEY=<the long string you just generated>
PAPERLESS_URL=https://paperless.example.com
PAPERLESS_TIME_ZONE=Europe/Berlin
PAPERLESS_OCR_LANGUAGE=deu+eng
USERMAP_UID=1000
USERMAP_GID=1000PAPERLESS_SECRET_KEY అనేది change-me అనే అక్షర విలువతో వస్తుంది. ఇది session cookies ని సైన్ చేస్తుంది, కాబట్టి దీన్ని అలాగే వదిలేస్తే, డిఫాల్ట్ విలువ తెలిసిన ఎవరైనా session ని ఫోర్జరీ చేయవచ్చు. దీన్ని మొదటిసారి ప్రారంభించే ముందే సెట్ చేయండి, ఎందుకంటే తర్వాత మార్చితే వినియోగదారులందరూ లాగ్ అవుట్ అవుతారు.
PAPERLESS_URL అనేది మీ సమయాన్ని ఆదా చేసే సెట్టింగ్. Paperless అనేది ఒక Django అప్లికేషన్, మరియు Django ప్రతి అభ్యర్థన యొక్క Host హెడర్ను ధృవీకరిస్తుంది. PAPERLESS_URL ని సెట్ చేయండి, అప్పుడు అది మీ కోసం ALLOWED_HOSTS, CORS_ALLOWED_HOSTS మరియు CSRF_TRUSTED_ORIGINS లను పూర్తి చేస్తుంది. దీన్ని ఖాళీగా వదిలి, ఒక డొమైన్ను సర్వర్కు పాయింట్ చేస్తే, ప్రతి పేజీ Bad Request (400) ఎర్రర్ను ఇస్తుంది మరియు కంటైనర్ లాగ్లో DisallowedHost కనిపిస్తుంది. దీన్ని చివరలో స్లాష్ (/) లేకుండా మరియు పాత్ లేకుండా రాయండి.
USERMAP_UID మరియు USERMAP_GID కంటైనర్ ఏ యూజర్ ఖాతాతో రన్ అవ్వాలో నిర్ణయిస్తాయి. వీటిని మీ స్వంత ఖాతాతో సరిపోల్చండి, దీని కోసం id -u మరియు id -g కమాండ్లను ఉపయోగించి తనిఖీ చేయండి. ఇవి సరిపోలకపోతే, మీరు consume ఫోల్డర్లోకి కాపీ చేసే ఫైల్లను కన్స్యూమర్ చదవలేదు, మరియు లాగ్లో ఇంపోర్ట్ ఎర్రర్కు బదులుగా పర్మిషన్ ఎర్రర్ కనిపిస్తుంది.
స్టాక్ను ప్రారంభించి మొదటి వినియోగదారుని సృష్టించండి
docker compose pull
docker compose up -d
docker compose run --rm webserver createsuperuser
docker compose logs -f webservercreatesuperuser వినియోగదారు పేరు, ఇమెయిల్ మరియు పాస్వర్డ్ కోసం అడుగుతుంది. ఇందులో డిఫాల్ట్ లాగిన్ ఏదీ ఉండదు, కాబట్టి ఈ దశను దాటవేస్తే మీరు సైన్-ఇన్ పేజీ వద్ద ఆగిపోతారు, అక్కడ ఏ వివరాలు పనిచేయవు. బ్రౌజర్లో ప్రయత్నించే ముందు, సర్వర్ 8000 పోర్ట్లో వింటోందని (listening) లాగ్ లైన్ ద్వారా నిర్ధారించుకోండి. మొదటిసారి ప్రారంభించినప్పుడు డేటాబేస్ మైగ్రేషన్లు జరుగుతాయి, దీనికి ఒకటి లేదా రెండు నిమిషాల సమయం పడుతుంది.
డొమైన్ను అనుసంధానించే ముందు స్థానికంగా ఇలా తనిఖీ చేయండి:
curl -I http://127.0.0.1:8000302 నుండి /accounts/login/ కి రీడైరెక్ట్ అవ్వడం అంటే స్టాక్ సరిగ్గా పనిచేస్తోందని అర్థం.
దీని ముందు HTTPS ను ఉంచండి
స్టాక్ compose ఫైల్ 8000:8000 ను పబ్లిష్ చేస్తుంది, ఇది ప్రతి ఇంటర్ఫేస్కు బైండ్ అవుతుంది. పబ్లిక్ VPS లో ఇది మీ మొత్తం డాక్యుమెంట్ ఆర్కైవ్ను ఎవరైనా అడ్రస్ను కనుగొంటే, plain HTTP ద్వారా అందరికీ అందుబాటులో ఉంచుతుంది. పోర్ట్ లైన్ను కేవలం loopback కు మాత్రమే బైండ్ అయ్యేలా మార్చండి:
ports:
- "127.0.0.1:8000:8000"ఆ తర్వాత reverse proxy లో TLS (transport layer security) ను terminate చేసి, 127.0.0.1:8000 కు ఫార్వర్డ్ చేయండి. ఒకవేళ ఈ బాక్స్లో ఇదే ఏకైక అప్లికేషన్ అయితే, ACME (automatic certificate management environment) క్లయింట్ ఉన్న ఏదైనా proxy సరిపోతుంది. ఒకే certificate సెటప్ వెనుక మీరు అనేక కంటైనర్లను నడుపుతుంటే, the Traefik reverse proxy pattern for multiple Docker Compose apps ను అనుసరించండి మరియు webserver సేవను ఎటువంటి పబ్లిష్డ్ పోర్ట్ లేకుండా proxy నెట్వర్క్కు అనుసంధానించండి.
మీరు ఏ proxy ని ఉపయోగించినా, అది తప్పనిసరిగా X-Forwarded-Proto: https ను పంపాలి. ఇది లేకపోతే, అభ్యర్థన HTTP ద్వారా వచ్చిందని Django భావిస్తుంది, login ఫారమ్లో origin చెక్ విఫలమవుతుంది, మరియు సరిగ్గా కనిపించే పేజీలో మీకు CSRF verification failed. Request aborted. వస్తుంది. ఈ పరిష్కారంలో రెండో భాగం, PAPERLESS_URL ను మీరు బ్రౌజర్లో టైప్ చేసే ఖచ్చితమైన https:// అడ్రస్కు సెట్ చేయడం.
అలాగే proxy యొక్క upload size పరిమితిని పెంచండి. 1 MB పరిమితి ఉన్న proxy ద్వారా 40 MB స్కాన్ పంపితే, అది paperless కు చేరకముందే తిరస్కరించబడుతుంది, మరియు బ్రౌజర్ ఒక సాధారణ upload failure ను చూపిస్తుంది.
consume డైరెక్టరీ ఎలా పనిచేస్తుంది
ఈ compose ఫైల్, compose డైరెక్టరీలోని ./consume ను కంటైనర్లోకి bind-mount చేస్తుంది. మీరు అక్కడ ఉంచే ఏదైనా ఫైల్ ఇంపోర్ట్ చేయబడి, ఆ ఫోల్డర్ నుండి తొలగించబడుతుంది, ఎందుకంటే ఆ ఫైల్ ఇప్పుడు paperless నిర్వహణలో ఉన్న media వాల్యూమ్లోకి చేరుతుంది.
cp ~/scan-2026-07-14.pdf ~/paperless/consume/
docker compose logs -f webserverconsumer ఫైల్ పేరును గుర్తించి, OCR రన్ చేసి, డాక్యుమెంట్ జోడించబడిందని తెలిపే లైన్తో పూర్తి చేయడం మీరు చూడవచ్చు. ఒక పేజీ స్కాన్ కోసం ఈ మొత్తం ప్రక్రియ కొన్ని సెకన్లలో పూర్తవుతుంది, అదే సుదీర్ఘమైన డాక్యుమెంట్ అయితే నిమిషం లేదా అంతకంటే ఎక్కువ సమయం పట్టవచ్చు.
రెండు సెట్టింగ్లు ఫైల్లను కనుగొనే విధానాన్ని మారుస్తాయి. PAPERLESS_CONSUMER_RECURSIVE=true ద్వారా paperless సబ్-ఫోల్డర్లను కూడా వెతుకుతుంది, మరియు PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=true ప్రతి సబ్-ఫోల్డర్ పేరును ఒక ట్యాగ్గా మారుస్తుంది. కాబట్టి, ఒక ఫైల్ను consume/invoices/2026/ లో ఉంచితే, అది invoices మరియు 2026 గా ట్యాగ్ చేయబడుతుంది. ఇది మీరు నిర్మించగలిగే అత్యంత సరళమైన ఫైలింగ్ సిస్టమ్.
మరొక ముఖ్యమైన అంశం గుర్తింపు (detection). డిఫాల్ట్గా PAPERLESS_CONSUMER_POLLING_INTERVAL అనేది 0 గా ఉంటుంది, అంటే paperless కెర్నల్ ఫైల్సిస్టమ్ నోటిఫికేషన్లను ఉపయోగిస్తుంది, ఇవి వెంటనే స్పందిస్తాయి. అయితే, ఆ నోటిఫికేషన్లు నెట్వర్క్ ఫైల్సిస్టమ్ ద్వారా పనిచేయవు. మీ consume ఫోల్డర్ ఒక NFS లేదా SMB షేర్ అయి ఉండి, నెట్వర్క్ స్కానర్ దానిలోకి ఫైల్లను రాస్తుంటే, ఏదీ గుర్తించబడదు. దీనిని సరిచేయడానికి, interval ను ఒక పాజిటివ్ సెకన్ల సంఖ్యకు సెట్ చేయాలి, తద్వారా paperless ఆ ఫోల్డర్ను క్రమం తప్పకుండా స్కాన్ చేస్తుంది.
OCR భాషలు మరియు వాటి ఖర్చు
PAPERLESS_OCR_LANGUAGE మూడు అక్షరాల Tesseract కోడ్ను తీసుకుంటుంది, డిఫాల్ట్గా eng ఉంటుంది. భాషలను కలపడానికి ప్లస్ గుర్తును ఉపయోగించండి, ఉదాహరణకు deu+eng. అప్పుడు Tesseract ప్రతి భాషను ప్రయత్నించి ఉత్తమ ఫలితాన్ని ఉంచుకుంటుంది, కాబట్టి ప్రతి అదనపు భాష ప్రతి పేజీపై ఖర్చు చేసే CPU సమయాన్ని పెంచుతుంది. షేర్డ్-vCPU VPSలో, ఇది ఒక స్కాన్ పది సెకన్లలో పూర్తి కావడానికి మరియు ఒక నిమిషం పట్టడానికి మధ్య ఉన్న వ్యత్యాసం. మీ పత్రాలు ఏ భాషల్లో ఉన్నాయో వాటిని మాత్రమే జాబితా చేయండి.
ఈ ఇమేజ్ English, German, Italian, Spanish మరియు French భాషలతో వస్తుంది. ఇతర భాషల కోసం, PAPERLESS_OCR_LANGUAGES లో స్పేస్తో వేరు చేయబడిన జాబితాగా ఆ భాషను జోడించండి, ఉదాహరణకు PAPERLESS_OCR_LANGUAGES=tur ces, ఆపై రీస్టార్ట్ చేయండి. కంటైనర్ ప్రారంభంలోనే Tesseract డేటా ప్యాక్లను డౌన్లోడ్ చేస్తుంది, కాబట్టి ఆ మార్పు తర్వాత మొదటి బూట్ నెమ్మదిగా ఉంటుంది.
డేటాబేస్ మరియు మీడియాను బ్యాకప్ చేయడం
PostgreSQL రన్ అవుతున్నప్పుడు Docker volumes ను కాపీ చేయడం వల్ల, ఆ బ్యాకప్ సరిగ్గా restore కాకపోవచ్చు. Paperless సొంతంగా ఒక exporter ను కలిగి ఉంటుంది. ఇది డాక్యుమెంట్లను మరియు అన్ని మెటాడేటాతో కూడిన JSON మానిఫెస్ట్ను ./export బైండ్ మౌంట్లోకి రాస్తుంది:
docker compose exec webserver document_exporter ../export --delete --no-progress-barప్రస్తుత డాక్యుమెంట్తో సరిపోలని ఎగుమతి చేసిన ఫైళ్లను --delete తొలగిస్తుంది, దీనివల్ల ఫోల్డర్ అనవసరంగా పెరగకుండా, అద్దంలా (mirror) ఉంటుంది. ఇది cron ద్వారా రన్ అయినప్పుడు అవుట్పుట్ను శుభ్రంగా ఉంచడానికి --no-progress-bar ఉపయోగపడుతుంది.
కొత్త స్టాక్లో అదే ఫోల్డర్ను ఉపయోగించి document_importer ద్వారా restore చేయవచ్చు. అంటే, మీరు భద్రపరచవలసిన ఏకైక విషయం ఈ ఎగుమతి డైరెక్టరీ మాత్రమే. దీన్ని మీ VPS నుండి ఎన్క్రిప్ట్ చేయబడిన, డీడూప్లికేట్ చేయబడిన restic బ్యాకప్లు ఉపయోగించి షెడ్యూల్ ప్రకారం ఆఫ్సైట్కు పంపండి. restic సగం రాసిన ఆర్కైవ్ను తీసుకోకుండా ఉండటానికి, ముందుగా ఎగుమతి ప్రక్రియను రన్ చేయండి.
export/manifest.json ఉందని, అలాగే interfaceలోని మీ document countతో file count సరిపోతుందని తనిఖీ చేయడం ద్వారా backupను ధృవీకరించండి. మీరు ఎప్పుడూ జాబితా చేయని backupను backupగా పరిగణించలేరు. రాత్రిపూట జరిగే export నిశ్శబ్దంగా విఫలమవడం ఇంకా ప్రమాదకరం. అందువల్ల cron job తన exit statusను మీ స్వంత ntfy serverకు పంపేలా చేయండి. అప్పుడు restore అవసరమైన రోజున కాకుండా, అది విఫలమైన వారంలోనే మీకు విషయం తెలుస్తుంది.
FAQ
నా డొమైన్ను పాయింట్ చేసిన తర్వాత ప్రతి పేజీ "Bad Request (400)" అని ఎందుకు చూపిస్తోంది?
మీ డొమైన్ ALLOWED_HOSTS లో లేనందున Django Host హెడర్ను తిరస్కరించింది. docker-compose.env లో PAPERLESS_URL=https://paperless.example.com ను సెట్ చేయండి (చివరన స్లాష్ ఉండకూడదు), ఆపై కంటైనర్ను తిరిగి సృష్టించడానికి docker compose up -d కమాండ్ను రన్ చేయండి. కేవలం env ఫైల్ను ఎడిట్ చేయడం వల్ల ఏమీ జరగదు, ఎందుకంటే రన్ అవుతున్న కంటైనర్ అది ప్రారంభమైనప్పటి పాత ఎన్విరాన్మెంట్నే కలిగి ఉంటుంది.
నేను consume ఫోల్డర్లో PDF ఫైల్ను ఉంచాను, కానీ ఏమీ జరగలేదు. సమస్య ఏమిటి?
ముందుగా docker compose logs webserver ని తనిఖీ చేయండి. పర్మిషన్ ఎర్రర్ ఉంటే, ఫైల్ యజమాని అయిన అకౌంట్తో USERMAP_UID మరియు USERMAP_GID సరిపోలడం లేదని అర్థం; వాటిని సరిచేసి కంటైనర్ను తిరిగి సృష్టించండి. లాగ్ ఫైల్లో ఎటువంటి లైన్ కనిపించకపోతే, ఫైల్ ఈవెంట్ అందలేదని అర్థం; నెట్వర్క్ షేర్లలో కెర్నల్ నోటిఫికేషన్లు పనిచేయవు కాబట్టి ఇలా జరుగుతుంది. PAPERLESS_CONSUMER_POLLING_INTERVAL ని 30 వంటి విలువకు సెట్ చేయండి, అప్పుడు paperless ప్రతి 30 సెకన్లకు ఫోల్డర్ను స్కాన్ చేస్తుంది.
నేను PostgreSQL కి బదులుగా SQLite తో paperless-ngx ని రన్ చేయవచ్చా?
అవును, docker-compose.sqlite.yml కి మద్దతు ఉంది మరియు ఇది తక్కువ మెమరీని తీసుకుంటుంది, ఇది చిన్న VPSలకు అనుకూలంగా ఉంటుంది. మీ ఆర్కైవ్ పెరిగేకొద్దీ దీని పరిమితులు తెలుస్తాయి: వేల సంఖ్యలో డాక్యుమెంట్లు ఉన్నప్పుడు ఫుల్-టెక్స్ట్ సెర్చ్ మరియు బల్క్ ట్యాగ్ ఎడిటింగ్ చాలా నెమ్మదిస్తాయి. తర్వాత మైగ్రేట్ చేయాలంటే ఎగుమతి (export) మరియు దిగుమతి (import) చేయాల్సి ఉంటుంది, కాబట్టి మీ ఆర్కైవ్ పెరుగుతుందని భావిస్తే ఇప్పుడే PostgreSQL ని ఎంచుకోండి.
స్కాన్ చేసిన డాక్యుమెంట్ల ఆర్కైవ్కు ఎంత డిస్క్ స్పేస్ అవసరం?
మీ సోర్స్ ఫైల్స్ పరిమాణం కంటే సుమారు రెట్టింపు స్పేస్ అవసరం. Paperless ఒరిజినల్ ఫైల్ను మార్చకుండా అలాగే ఉంచుతుంది మరియు సెర్చ్ చేయగల టెక్స్ట్ లేయర్తో కూడిన రెండవ OCR'd PDFని, చిన్న థంబ్నెయిల్స్ను స్టోర్ చేస్తుంది. 200 KB ఉన్న టెక్స్ట్-ఓన్లీ స్కాన్ చిన్నదిగానే ఉంటుంది. 30 MB ఉన్న కలర్ స్కాన్ సుమారు 60 MB వరకు స్టోర్ అవుతుంది. మీరు ఎగుమతి (export) డైరెక్టరీని కూడా అదే డిస్క్లో ఉంచితే, ఒకే ఆర్కైవ్ డిస్క్లో మూడుసార్లు స్టోర్ అవుతుంది.
నాకు Tika మరియు Gotenberg కంటైనర్లు అవసరమా?
మీరు PDFలతో పాటు Word, Excel లేదా OpenDocument ఫైళ్లను కూడా ఇండెక్స్ చేయాలనుకుంటేనే ఇవి అవసరం. ఇవి ఆ ఫార్మాట్లను PDFలోకి మారుస్తాయి, తద్వారా paperless వాటిని OCR చేసి సెర్చ్ చేయగలదు. ఇవి అదనంగా రెండు కంటైనర్లను రన్ చేస్తాయి మరియు కొన్ని వందల మెగాబైట్ల మెమరీని తీసుకుంటాయి, కాబట్టి మీరు ఫైల్ చేసేవన్నీ ఇప్పటికే PDF లేదా ఇమేజ్ ఫార్మాట్లలో ఉంటే, చిన్న సర్వర్లలో వీటిని వదిలేయవచ్చు.