Stirling PDF on a VPS: নিজের PDF editor ইনস্টল করার উপায়

3 মিনিট পড়া
Tropic
Stirling PDF on a VPS: নিজের PDF editor ইনস্টল করার উপায়

Stirling PDF: VPS-এ নিজের PDF editor ইনস্টল করার উপায়

Contract-এর সঙ্গে appendix জোড়া, passport scan compress বা payment detail আড়াল করার জন্য অনেকে প্রথম পাওয়া online service-এ document upload করেন। File-এর সঙ্গে signature, address, invoice ও অন্যান্য confidential data-ও third-party website-এ চলে যেতে পারে।

Stirling PDF অন্য পদ্ধতি দেয়। এটি dozens of PDF tool-সহ একটি web application, যা নিজের VPS-এ চালানো যায়। Computer বা phone-এর browser-এ interface খোলে, আর document process করে আপনার server।

নিচে Stirling PDF-এর আকর্ষণীয় feature, server requirement এবং authentication ও HTTPS-সহ Docker Compose দিয়ে Ubuntu-এ installation দেখব।

Stirling PDF কী?

Stirling PDF হলো PDF file edit ও process করার self-hosted platform। এতে 55টির বেশি operation একত্র করা হয়েছে: file merge ও split, page rearrange, compression, conversion, OCR, signature, watermark, document comparison এবং metadata ও confidential information removal।

সার্ভিসটি desktop application, cloud product বা self-hosted server হিসেবে ব্যবহার করা যায়। Self-hosted mode-এ file নিজের Stirling PDF instance process করে, আর password ও HTTPS দিয়ে access সুরক্ষিত করা যায়। Free server edition সর্বোচ্চ পাঁচজন user-এর group-এর জন্য, আর বড় team ও নির্দিষ্ট enterprise feature-এর জন্য paid edition আছে।

সাধারণ online converter থেকে মূল পার্থক্য হলো control। Provider, server location, user ও access rule আপনি বেছে নেন। একই সঙ্গে প্রতিটি operation-এর জন্য আলাদা website খুঁজতে হয় না: compression, conversion, signing ও OCR-এর collection-কে একটি interface প্রতিস্থাপন করে।

Stirling PDF-এর সবচেয়ে আকর্ষণীয় feature

Visual page management

Multi-Tool mode-এ document thumbnail-এর grid হিসেবে দেখা যায়। Page drag, rotate, delete, split, প্রয়োজনীয় জায়গায় insert এবং বেছে নিয়ে export করা যায়। File একবারই upload করতে হয়, আর change undo ও redo সমর্থন করে।

Scanned document-এর জন্য OCR

OCR scanned PDF-তে একটি text layer যোগ করে। Process-এর পরে document-এ word search, text select ও copy করা যায়। Deskew, noise removal ও contrast enhancement-ও available। Russian language-এর জন্য Tesseract package rus.traineddata আলাদাভাবে যোগ করতে হবে।

নিরাপদ data redaction

Account number-এর ওপর বসানো black rectangle সবসময় original text সরায় না। Redact tool শুধু visual layer দিয়ে ঢেকে না রেখে PDF structure থেকে match মুছে দিতে পারে। Area হাতে mark করা যায় অথবা word ও regular expression ব্যবহার করে পুরো document-এ phone number, email address, card number ও অন্যান্য data search করা যায়।

Version comparison ও mobile scanner

Compare দুই version-এর contract, report বা technical specification-এর মধ্যে কোন word যোগ বা বাদ গেছে তা দেখায়। Paper document-এর জন্য mobile scanner আছে: computer-এ QR code দেখা যায়, phone সরাসরি current session-এ photo upload করে এবং download-এর পরে বা দশ মিনিট inactivity-র পর temporary file স্বয়ংক্রিয়ভাবে মুছে যায়।

Automation ও API

Automate PDF file-এর জন্য macro-এর মতো কাজ করে। উদাহরণস্বরূপ, নিচের workflow একবার save করা যায়:

OCR → remove blank pages → compress → add a watermark → set a password

এরপর প্রতিটি ধাপ আবার না করে নতুন file-এ একই workflow প্রয়োগ করা যায়। Stirling PDF watched folder থেকে file process করাও সমর্থন করে এবং built-in Swagger documentation-সহ REST API দেয়।

Stirling PDF-এর জন্য কেমন VPS দরকার?

PDF process করতে source file যত memory নেয়, তার চেয়ে অনেক বেশি memory লাগতে পারে। OCR, page-কে image-এ conversion এবং LibreOffice দিয়ে office document conversion বিশেষভাবে resource-intensive।

Test deployment-এর জন্য 2 GB RAM যথেষ্ট, কিন্তু নিয়মিত ব্যবহারে বেছে নেওয়া ভালো:

  • 2 vCPU;
  • 4 GB RAM;
  • SSD বা NVMe drive-এ অন্তত 10–20 GB free space;
  • Ubuntu 22.04 বা 24.04।

একসঙ্গে কয়েকজন user OCR বা conversion চালালে 4 vCPU ও 8 GB RAM বেছে নেওয়া বেশি যুক্তিসঙ্গত। কম ক্ষমতার server-এর জন্য latest-ultra-lite image আছে, আর উচ্চমানের conversion-এর জন্য latest-fat-এ অতিরিক্ত font ও tool রয়েছে। বেশিরভাগ user-এর জন্য standard latest image উপযুক্ত।

Docker Compose দিয়ে Stirling PDF ইনস্টল

নিচের configuration-এ container শুধু local interface-এ listen করে। পরে external access HTTPS-সহ Nginx-এর মাধ্যমে হবে, তাই port 8080 পুরো internet-এ expose হবে না।

Step 1. Docker ইনস্টল করুন

ssh root@SERVER_IP
apt update && apt upgrade -y
apt install -y curl
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
rm get-docker.sh

Installation যাচাই করুন:

docker --version
docker compose version

Step 2. Docker Compose configuration তৈরি করুন

mkdir -p /opt/stirling-pdf/{configs,logs,pipeline}
cd /opt/stirling-pdf
nano docker-compose.yml

Configuration যোগ করুন:

services:
  stirling-pdf:
    image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - ./configs:/configs
      - ./logs:/logs
      - ./pipeline:/pipeline
    environment:
      - SECURITY_ENABLELOGIN=true
      - SYSTEM_DEFAULTLOCALE=ru-RU
      - SYSTEM_GOOGLEVISIBILITY=false

Service চালু করুন:

docker compose up -d
docker compose ps

Diagnostics-এর জন্য:

docker compose logs --tail=100 stirling-pdf

Step 3. প্রথমবার sign in করুন

Domain configure করার আগে SSH tunnel-এর মাধ্যমে interface খুলুন। Computer-এ command চালান:

ssh -L 8080:127.0.0.1:8080 root@SERVER_IP

http://localhost:8080-এ যান। প্রথম login-এর default credential হলো username admin এবং password stirling। Account setting-এ সঙ্গে সঙ্গে password বদলান।

Domain ও HTTPS সংযুক্ত করা

pdf.example.com-এর মতো একটি address-এর জন্য A-type DNS record তৈরি করে server-এর IP address-এ point করুন। তারপর Nginx ও Certbot install করুন:

apt install -y nginx certbot python3-certbot-nginx
nano /etc/nginx/sites-available/stirling-pdf

Configuration যোগ করে domain name প্রতিস্থাপন করুন:

server {
    listen 80;
    server_name pdf.example.com;
    client_max_body_size 500M;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}

Site enable করে certificate নিন:

ln -s /etc/nginx/sites-available/stirling-pdf /etc/nginx/sites-enabled/stirling-pdf
nginx -t
systemctl reload nginx
certbot --nginx -d pdf.example.com

এখন Stirling PDF HTTPS-এ available, আর internal port 8080 বন্ধ থাকে। 500 MB-এর চেয়ে বড় file-এর জন্য client_max_body_size বাড়ান।

Russian OCR যোগ করার উপায়

Directory তৈরি করে English ও Russian Tesseract package download করুন:

cd /opt/stirling-pdf
mkdir -p tessdata
curl -L -o tessdata/eng.traineddata \
  https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/eng.traineddata
curl -L -o tessdata/rus.traineddata \
  https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/rus.traineddata

docker-compose.yml file-এর volumes section-এ নিচের line যোগ করুন:

      - ./tessdata:/usr/share/tessdata

Change apply করে available language দেখুন:

docker compose up -d
docker exec stirling-pdf tesseract --list-langs

List-এ engrus থাকা উচিত।

Security, update ও সীমাবদ্ধতা

নিয়মিত ব্যবহারের আগে default password বদলান, authentication চালু রাখুন, port 8080 expose করবেন না এবং firewall-এ শুধু SSH, HTTP ও HTTPS allow করুন। configspipeline directory backup-এ রাখা উচিত। User consent-এর পরেই Stirling PDF analytics enable হয় এবং administrator এটি সম্পূর্ণভাবে disable করতে পারেন।

Application update করতে:

cd /opt/stirling-pdf
docker compose pull
docker compose up -d

Stirling PDF প্রতিদিনের বেশিরভাগ কাজ সামলায়, কিন্তু PDF ও office format-এর মধ্যে conversion করার সময় complex layout সবসময় ঠিক রাখে না। OCR table ও formula-এর structure চিনতে পারে না, আর handwritten বা খুব ছোট text-এর quality সীমিত। ভালো ফলের জন্য প্রায় 300 DPI resolution-এর পরিষ্কার scan ব্যবহার করুন।

tropic.host-এর VPS-এ Stirling PDF

Service-এর graphics card দরকার নেই: RAM, stable CPU performance ও fast storage বেশি গুরুত্বপূর্ণ। User-এর কাছাকাছি location বেছে নেওয়া ভালো, কারণ বড় document প্রথমে server-এ upload এবং পরে আবার download হয়।

Personal instance বা ছোট team-এর জন্য 2 vCPU ও 4 GB RAM-সহ Linux VPS সাধারণত যথেষ্ট। tropic.host-এর VPS-এ Ubuntu install করে উপরের Docker Compose configuration চালু এবং আলাদা subdomain-এ interface host করতে পারেন। একই server-এ অন্য container চললে extra memory বিশেষভাবে গুরুত্বপূর্ণ।

উপসংহার

Stirling PDF VPS-কে document-এর নিজের web service-এ পরিণত করে। এতে dozens of tool-এর পাশাপাশি OCR, confidential data সত্যিই remove করা, version comparison, mobile scanning, automation ও API support আছে।

নিজে deploy করার প্রধান কারণ file-এর ওপর control। Contract, invoice, form ও internal document-এর জন্য authentication ও HTTPS-সহ protected instance এলোমেলো online converter-এর collection-এর চেয়ে সুবিধাজনক।

FAQ

Stirling PDF কি বিনামূল্যে?

হ্যাঁ। Free self-hosted edition সর্বোচ্চ পাঁচজন user সমর্থন করে। বড় team ও enterprise feature প্রয়োজন হলে paid edition লাগে।

Document কি আমার server-এর বাইরে যায়?

Self-hosted mode-এ document নিজের Stirling PDF instance process করে। চূড়ান্ত security VPS configuration, HTTPS, password, update ও administrator access-এর ওপর নির্ভর করে।

2 GB RAM কি যথেষ্ট?

Testing ও হালকা operation-এর জন্য হ্যাঁ। নিয়মিত ব্যবহার, OCR ও conversion-এর জন্য 4 GB RAM নেওয়া ভালো, আর concurrent workload-এর জন্য আরও বেশি দরকার হতে পারে।

Domain কি বাধ্যতামূলক?

না। IP address বা SSH tunnel দিয়ে service খোলা যায়। Convenient permanent address ও সঠিক HTTPS configuration-এর জন্য domain উপকারী।

Russian OCR কি supported?

হ্যাঁ। Tesseract directory-তে rus.traineddata file যোগ করে container-এ mount করুন।