Stirling PDF: VPS에 나만의 PDF 편집기를 설치하는 방법
계약서와 첨부 문서를 합치거나, 여권 스캔본을 압축하거나, 결제 정보를 가리기 위해 많은 사용자가 검색해서 처음 나온 온라인 서비스에 문서를 업로드합니다. 이 과정에서 서명, 주소, 청구서 및 기타 기밀 데이터가 파일과 함께 외부 웹사이트로 전송될 수 있습니다.
Stirling PDF는 다른 방식을 제공합니다. 수십 가지 PDF 도구를 갖춘 웹 애플리케이션으로, 자신의 VPS에서 실행할 수 있습니다. 관리 화면은 컴퓨터나 스마트폰의 브라우저에서 열리지만, 문서 처리는 자신의 서버에서 이루어집니다.
아래에서는 Stirling PDF의 가장 흥미로운 기능, 서버 요구 사항, 그리고 인증과 HTTPS를 적용해 Docker Compose로 Ubuntu에 설치하는 방법을 살펴보겠습니다.
Stirling PDF란 무엇인가
Stirling PDF는 PDF를 편집하고 처리하는 셀프 호스팅 플랫폼입니다. 파일 병합과 분할, 페이지 순서 변경, 압축, 변환, OCR, 서명, 워터마크, 문서 비교, 메타데이터 및 기밀 정보 삭제 등 55가지가 넘는 작업을 하나로 제공합니다.
이 서비스는 데스크톱 애플리케이션, 클라우드 제품 또는 자체 서버 형태로 사용할 수 있습니다. 셀프 호스팅 모드에서는 자신의 Stirling PDF 인스턴스가 파일을 처리하며, 비밀번호와 HTTPS로 접근을 보호할 수 있습니다. 무료 서버 버전은 최대 5명의 사용자로 구성된 그룹을 대상으로 하며, 더 큰 팀과 일부 기업용 기능에는 유료 에디션이 제공됩니다.
일반적인 온라인 변환기와 가장 큰 차이는 통제권입니다. 제공업체, 서버 위치, 사용자, 접근 규칙을 직접 선택할 수 있습니다. 또한 작업마다 별도의 사이트를 찾을 필요가 없습니다. 하나의 관리 화면이 압축, 변환, 서명, OCR을 위한 여러 서비스를 대체합니다.
Stirling PDF의 가장 흥미로운 기능
시각적인 페이지 작업
Multi-Tool 모드에서는 문서가 썸네일 그리드로 표시됩니다. 페이지를 드래그하고, 회전하고, 삭제하고, 분할하고, 원하는 위치에 삽입하거나 선택한 페이지만 내보낼 수 있습니다. 파일은 한 번만 업로드하며, 변경 사항은 실행 취소와 다시 실행을 지원합니다.
스캔 문서용 OCR
OCR은 스캔된 PDF에 텍스트 레이어를 추가합니다. 처리 후에는 문서에서 단어를 검색하고, 텍스트를 선택하거나 복사할 수 있습니다. 기울어진 페이지 보정, 노이즈 제거, 대비 향상 기능도 제공됩니다. 러시아어를 사용하려면 Tesseract 패키지 rus.traineddata를 별도로 추가해야 합니다.
안전한 데이터 삭제
계좌번호 위에 검은색 사각형을 덮는 것만으로는 원본 텍스트가 항상 삭제되지 않습니다. Redact 도구는 단순히 시각적 레이어로 가리는 것이 아니라 PDF 구조에서 일치하는 내용을 제거할 수 있습니다. 영역을 직접 지정하거나, 단어 또는 정규 표현식을 사용해 문서 전체에서 전화번호, 이메일 주소, 카드 번호 및 기타 데이터를 검색할 수 있습니다.
버전 비교와 모바일 스캐너
Compare는 계약서, 보고서 또는 기술 명세서의 두 버전 사이에서 어떤 단어가 추가되거나 삭제되었는지 보여 줍니다. 종이 문서에는 모바일 스캐너를 사용할 수 있습니다. 컴퓨터에 QR 코드가 표시되고, 스마트폰에서 사진을 현재 세션으로 직접 업로드하며, 임시 파일은 다운로드 후 또는 10분 동안 활동이 없으면 자동으로 삭제됩니다.
자동화와 API
Automate는 PDF용 매크로처럼 작동합니다. 예를 들어 다음 작업 흐름을 한 번 저장할 수 있습니다.
OCR → 빈 페이지 삭제 → 압축 → 워터마크 추가 → 비밀번호 설정
그다음에는 각 단계를 반복하지 않고도 같은 시나리오를 새 파일에 적용할 수 있습니다. Stirling PDF는 감시 폴더의 파일 처리와 내장 Swagger 문서가 포함된 REST API도 지원합니다.
Stirling PDF에 필요한 VPS 사양
PDF 처리에는 원본 파일이 차지하는 용량보다 훨씬 많은 메모리가 필요할 수 있습니다. 특히 OCR, 페이지를 이미지로 변환하는 작업, LibreOffice를 통한 오피스 문서 변환은 많은 리소스를 사용합니다.
테스트 실행에는 2 GB RAM이면 충분하지만, 상시 사용에는 다음 사양을 권장합니다.
- 2 vCPU;
- 4 GB RAM;
- SSD 또는 NVMe에 최소 10–20 GB의 여유 공간;
- Ubuntu 22.04 또는 24.04.
여러 사용자가 동시에 OCR이나 변환을 실행한다면 4 vCPU와 8 GB RAM을 선택하는 편이 더 합리적입니다. 성능이 낮은 서버용으로 latest-ultra-lite 이미지가 있으며, latest-fat에는 더 높은 품질의 변환을 위한 추가 글꼴과 도구가 포함되어 있습니다. 대부분의 사용자에게는 표준 latest가 적합합니다.
Docker Compose로 Stirling PDF 설치하기
아래 구성에서 컨테이너는 로컬 인터페이스에서만 수신합니다. 외부 접근은 이후 HTTPS를 적용한 Nginx를 통해 이루어지므로 8080 포트가 인터넷 전체에 공개되지 않습니다.
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설치를 확인합니다.
docker --version
docker compose version2단계. Docker Compose 구성 만들기
mkdir -p /opt/stirling-pdf/{configs,logs,pipeline}
cd /opt/stirling-pdf
nano docker-compose.yml다음 구성을 추가합니다.
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서비스를 시작합니다.
docker compose up -d
docker compose ps진단에는 다음 명령을 사용합니다.
docker compose logs --tail=100 stirling-pdf3단계. 첫 로그인 수행
도메인을 설정하기 전에는 SSH 터널을 통해 관리 화면을 엽니다. 이 명령은 자신의 컴퓨터에서 실행합니다.
ssh -L 8080:127.0.0.1:8080 root@SERVER_IPhttp://localhost:8080으로 이동합니다. 최초 로그인 기본 정보는 사용자 이름 admin, 비밀번호 stirling입니다. 계정 설정에서 즉시 비밀번호를 변경하십시오.
도메인과 HTTPS 연결하기
pdf.example.com과 같은 주소에 대해 A 유형 DNS 레코드를 만들고 서버 IP를 가리키도록 설정합니다. 그런 다음 Nginx와 Certbot을 설치합니다.
apt install -y nginx certbot python3-certbot-nginx
nano /etc/nginx/sites-available/stirling-pdf도메인을 바꾼 뒤 다음 구성을 추가합니다.
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;
}
}사이트를 활성화하고 인증서를 발급받습니다.
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로 접근할 수 있으며 내부 8080 포트는 닫힌 상태로 유지됩니다. 500 MB보다 큰 파일을 처리하려면 client_max_body_size 값을 늘리십시오.
러시아어 OCR 추가 방법
디렉터리를 만들고 영어 및 러시아어 Tesseract 패키지를 다운로드합니다.
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.traineddatadocker-compose.yml 파일의 volumes에 다음 줄을 추가합니다.
- ./tessdata:/usr/share/tessdata변경 사항을 적용하고 사용 가능한 언어를 확인합니다.
docker compose up -d
docker exec stirling-pdf tesseract --list-langs목록에 eng와 rus가 표시되어야 합니다.
보안, 업데이트 및 제한 사항
상시 사용하기 전에 기본 비밀번호를 변경하고, 인증을 활성화된 상태로 유지하며, 8080 포트를 공개하지 말고, 방화벽에서는 SSH, HTTP, HTTPS만 허용하십시오. configs와 pipeline 디렉터리는 백업에 포함하는 것이 좋습니다. Stirling PDF 분석 기능은 사용자가 동의한 뒤에만 활성화되며, 관리자가 완전히 비활성화할 수 있습니다.
업데이트는 다음과 같이 진행합니다.
cd /opt/stirling-pdf
docker compose pull
docker compose up -dStirling PDF는 대부분의 일상적인 작업을 처리하지만, PDF와 오피스 형식 사이를 변환할 때 복잡한 레이아웃을 항상 유지하지는 못합니다. OCR은 표와 수식의 구조를 인식하지 못하며, 손글씨나 작은 글자의 인식 품질에도 한계가 있습니다. 좋은 결과를 얻으려면 약 300 DPI 해상도의 선명한 스캔을 사용하는 것이 좋습니다.
tropic.host VPS에서 Stirling PDF 사용하기
이 서비스에는 그래픽 카드가 필요하지 않습니다. RAM, 안정적인 CPU 성능, 빠른 저장장치가 더 중요합니다. 큰 문서는 먼저 서버에 업로드한 뒤 다시 다운로드하므로 사용자와 가까운 위치를 선택하는 것이 좋습니다.
개인 인스턴스나 소규모 팀에는 일반적으로 2 vCPU와 4 GB RAM을 갖춘 Linux VPS면 충분합니다. tropic.host VPS에 Ubuntu를 설치하고, 위의 Docker Compose를 실행한 뒤, 별도의 하위 도메인에 관리 화면을 배치할 수 있습니다. 같은 서버에서 다른 컨테이너도 실행 중이라면 여유 메모리가 특히 중요합니다.
간단한 결론
Stirling PDF는 VPS를 자체 문서 웹 서비스로 바꿔 줍니다. 수십 가지 도구를 통합하고 OCR, 기밀 데이터의 실제 삭제, 버전 비교, 모바일 스캔, 자동화 및 API를 지원합니다.
직접 배포하는 가장 큰 이유는 파일에 대한 통제권입니다. 계약서, 청구서, 신청서 및 내부 문서에는 인증과 HTTPS로 보호된 자체 인스턴스가 여러 임의의 온라인 변환기를 사용하는 것보다 편리합니다.
FAQ
Stirling PDF는 무료인가요?
예. 무료 셀프 호스팅 버전은 최대 5명의 사용자를 지원합니다. 더 큰 팀과 기업용 기능이 필요한 조직에는 유료 에디션이 필요합니다.
문서가 내 서버를 벗어나나요?
셀프 호스팅 모드에서는 자신의 Stirling PDF 인스턴스가 문서를 처리합니다. 최종 보안 수준은 VPS 설정, HTTPS, 비밀번호, 업데이트 및 관리자 접근 권한에 따라 달라집니다.
2 GB RAM이면 충분한가요?
테스트와 가벼운 작업에는 충분합니다. 상시 사용, OCR, 변환에는 4 GB RAM을 선택하는 것이 좋으며, 동시 작업이 있다면 더 많은 메모리가 필요합니다.
도메인이 필요한가요?
아니요. IP 주소 또는 SSH 터널을 통해 서비스를 열 수 있습니다. 도메인은 편리한 고정 주소와 올바른 HTTPS 설정을 위해 필요합니다.
러시아어 OCR을 지원하나요?
예. rus.traineddata 파일을 Tesseract 디렉터리에 추가하고 컨테이너에 마운트해야 합니다.
