Bir sözleşmeyi birleştirmek, faturaların ilk sayfasını ayırmak ya da 40 megabaytlık bir teklifi e-postaya sığdırmak için PDF sıkıştırmak istediğinizde çoğu insanın refleksi aynıdır: arama motoruna "pdf birleştir" yazıp çıkan ilk ücretsiz siteye dosyayı yüklemek. Sorun şu ki o dosya artık sizin sunucunuzda değil, tanımadığınız bir üçüncü tarafın sunucusunda duruyor. İçinde müşteri bilgisi, TC kimlik numarası, mali tablo ya da imzalı bir sözleşme varsa, o veriyi kimin sakladığını, ne kadar tuttuğunu ve kime devrettiğini bilmiyorsunuz. Kurumsal bir ortamda bu, hem KVKK açısından hem de basit bir güven meselesi açısından ciddi bir risktir.
Stirling-PDF tam olarak bu problemi çözmek için var. Kendi sunucunuza kurduğunuz, tarayıcı üzerinden çalışan ve 50'den fazla PDF işlemini bir araya toplayan açık kaynaklı bir araç kutusudur. Birleştirme, bölme, döndürme, sıkıştırma, OCR, dönüştürme, sıkı bir şekilde parola koruması gibi işlemlerin tamamı sizin makinenizde gerçekleşir; hiçbir dosya dışarı çıkmaz. Bu yazıda Stirling-PDF'in ne olduğunu, hangi araçları barındırdığını, Docker ile nasıl kurulacağını, üretim ortamında nasıl güvenle yayına alınacağını ve günlük iş akışında nasıl kullanılacağını kıdemli bir sistem yöneticisinin gözünden anlatacağız.
Stirling-PDF Nedir ve Neden Ortaya Çıktı#
Stirling-PDF, arka planda Java ile yazılmış, PDFBox ve LibreOffice gibi olgun kütüphaneleri kullanan, tek bir web arayüzü altında onlarca PDF aracını toplayan bir uygulamadır. Çevrimiçi PDF araçlarına giden ücretli ya da ücretsiz sitelerin yaptığı hemen her şeyi yapar, ancak temel farkı çalışma yerindedir: bu araçlar bir bulut hizmetinde değil, sizin kendi sunucunuzda, kendi kontrolünüz altında çalışır. "Self-hosted" denen yaklaşımın klasik bir örneğidir; veriyi ve yazılımı kendi altyapınızda tutarsınız.
Proje, çevrimiçi PDF araçlarının gizlilik açısından yarattığı rahatsızlıktan doğdu. İnsanlar günlük olarak hassas belgeleri tanımadıkları sitelere yüklüyordu ve bunun bir alternatifi yoktu. Stirling-PDF, "aynı kolaylık, ama veri benim elimde" fikrini hayata geçirdi. Açık kaynak olması sayesinde kodu inceleyebilir, kendi ihtiyacınıza göre uyarlayabilir ve arkasında bir şirketin sizi izleyip izlemediğini merak etmeden kullanabilirsiniz. Küçük bir muhasebe ofisinden büyük bir hukuk bürosuna, tek kişilik bir freelancer'dan kurumsal bir BT departmanına kadar geniş bir kitleye hitap eder.
Uygulamanın bir başka güçlü yanı, hiçbir hesap ya da kayıt zorunluluğu olmadan çalışabilmesidir. Kurulumun ardından tarayıcıdan adrese gidersiniz, aracı seçersiniz, dosyayı sürükler bırakırsınız ve sonucu indirirsiniz. İsterseniz kullanıcı hesapları ve oturum açma zorunluluğu ekleyebilirsiniz; ama temel kullanım için bir kullanıcı yönetimi katmanı şart değildir. Bu, onu hem hızlı denemeler hem de kalıcı kurumsal kurulumlar için esnek kılar.
50'den Fazla Araç Ne İşe Yarar#
Stirling-PDF'in cazibesi, tek bir işlemi değil neredeyse aklınıza gelebilecek her PDF işlemini tek çatı altında sunmasıdır. Araçlar mantıksal gruplara ayrılmıştır ve arayüzde kategori kategori listelenir. Aşağıdaki tablo en çok kullanılan işlemleri ve tipik senaryolarını özetliyor.
| Kategori | Örnek Araçlar | Tipik Kullanım |
|---|---|---|
| Sayfa işlemleri | Birleştir, böl, döndür, sil, yeniden sırala | Birden çok teklifi tek dosyada toplama |
| Dönüştürme | PDF'den Word, resim, HTML; ofis dosyasından PDF | Taranmış belgeyi düzenlenebilir hale getirme |
| Güvenlik | Parola ekle/kaldır, izin ayarla, filigran, imzala | Sözleşmeyi parolayla koruma |
| Optimizasyon | Sıkıştır, boyut küçült, renkten griye çevir | E-postaya sığmayan dosyayı küçültme |
| İçerik | OCR, metin çıkar, sayfa numarası ekle | Taranmış PDF'i aranabilir yapma |
| Karşılaştırma | İki PDF'i kıyasla, üst üste bindir | Sözleşme revizyonlarını görsel karşılaştırma |
Günlük hayatta bunların en çok işe yarayanları genellikle birleştirme, bölme ve sıkıştırmadır. Örneğin bir ihale dosyası hazırlıyorsanız, farklı kaynaklardan gelen on ayrı PDF'i tek belgede toplamanız gerekir; birleştirme aracı bunu saniyeler içinde yapar. Muhasebe tarafında ise çoğu zaman ters yönde çalışırsınız: elinizdeki 200 sayfalık taranmış defter kayıtlarını aylara göre bölmek istersiniz.
OCR, yani optik karakter tanıma, belki de en çok küçümsenen ama en değerli araçtır. Taranmış bir belge aslında bir resimdir; içindeki yazıyı seçemez, arayamaz, kopyalayamazsınız. Stirling-PDF'in OCR aracı bu resmin üzerine görünmez bir metin katmanı ekler, böylece belge tam anlamıyla aranabilir hale gelir. Türkçe dahil çok sayıda dil paketi desteklenir, dolayısıyla "ş", "ğ", "ı" gibi karakterleri de doğru tanır. Bu, arşivini dijitalleştiren her işletme için tek başına Stirling-PDF'i kurmaya değer bir gerekçedir.
Verinin Sunucuda Kalması Neden Kritik#
Stirling-PDF'in en önemli vaadi teknik değil, ilkesel bir vaattir: belgeleriniz asla dışarı çıkmaz. Bir dosyayı arayüze yüklediğinizde o dosya yalnızca sizin sunucunuzun belleğinde işlenir, işlem biter bitmez silinir ve hiçbir dış hizmete bir bayt bile gönderilmez. Bu, ücretsiz çevrimiçi araçlarla arasındaki en keskin farktır ve özellikle Türkiye'de KVKK yükümlülükleri açısından doğrudan bir avantaj sağlar.
Kişisel verileri işleyen her kurum, o veriyi kimin, nerede işlediğinden sorumludur. Bir müşteri sözleşmesini yabancı bir bulut PDF hizmetine yüklediğinizde, teknik olarak veri yurt dışına aktarılmış olabilir ve bunun için ne açık rıza ne de uygun bir aktarım güvencesi vardır. Kendi sunucunuzda çalışan Stirling-PDF ile bu zincir hiç kurulmaz; veri, işlemenin başından sonuna kadar sizin denetiminizdeki altyapıda kalır. Denetim geçirdiğinizde "bu belgeler nereye gitti" sorusuna net bir yanıtınız olur: hiçbir yere.
Gizliliğin ötesinde pratik faydalar da vardır. İnternet bağlantınız olmasa bile yerel ağınızdaki sunucu üzerinden çalışmaya devam edebilirsiniz. Yükleme boyutunda üçüncü tarafların koyduğu sınırlar sizi bağlamaz; sunucunuzun kaynakları elverdiği sürece yüzlerce megabaytlık dosyaları işleyebilirsiniz. Bant genişliğinizi büyük dosyaları dışarı yükleyip indirmek için harcamazsınız. Bu avantajları düşünüyorsanız, verilerinizi kendi kontrolünüzde tutan diğer araçlara da göz atmak isteyebilirsiniz; örneğin dosya senkronizasyonu ve paylaşımı için Nextcloud kurulumunu anlattığımız yazı aynı felsefeyi paylaşır.
Docker ile Kurulum#
Stirling-PDF'i kurmanın açık ara en pratik yolu Docker'dır. Java, LibreOffice, OCR motoru ve onlarca sistem bağımlılığını tek tek kurmak yerine, resmi imaj bunların hepsini içinde hazır getirir. Tek gereken çalışan bir Docker kurulumudur. En hızlı başlangıç için tek bir komut yeterlidir.
docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v stirling_data:/usr/share/tessdata \
-v stirling_config:/configs \
-e DOCKER_ENABLE_SECURITY=false \
--restart unless-stopped \
docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
Bu komut uygulamayı arka planda başlatır ve 8080 portundan erişilebilir kılar. Tarayıcıdan http://sunucu-ip-adresiniz:8080 adresine gittiğinizde arayüz sizi karşılar. Kalıcı kurulumlarda tek komut yerine bir docker-compose.yml dosyası kullanmak çok daha yönetilebilirdir; yapılandırmayı sürüm kontrolüne alabilir ve tek komutla ayağa kaldırabilirsiniz.
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- "8080:8080"
volumes:
- ./data:/usr/share/tessdata
- ./config:/configs
- ./logs:/logs
environment:
DOCKER_ENABLE_SECURITY: "true"
SECURITY_ENABLELOGIN: "true"
LANGS: "tr_TR,en_GB"
SYSTEM_DEFAULTLOCALE: "tr-TR"
restart: unless-stopped
Dosyayı kaydettikten sonra aynı dizinde docker compose up -d komutunu çalıştırmanız yeterlidir. Burada dikkat edilecek birkaç nokta var. LANGS değişkeni arayüz dillerini belirler; Türkçe için tr_TR eklemek arayüzü yerelleştirir. OCR'ın Türkçe metni tanıması için ise tessdata dizinine Türkçe dil paketinin yüklü olması gerekir, ki resmi imaj bunu kolaylıkla halleder. DOCKER_ENABLE_SECURITY ve SECURITY_ENABLELOGIN değişkenlerini true yaparsanız uygulama oturum açma zorunluluğu ister; ilk açılışta varsayılan yönetici hesabıyla girip parolayı hemen değiştirmelisiniz. Konteynerlerinizi görsel bir panelden yönetmeyi tercih ediyorsanız, Portainer kurulum rehberimiz bu tür self-hosted uygulamaları tek ekrandan takip etmeyi kolaylaştırır.
Kurulumu bir sunucu üzerinde yapacaksanız, kaynak olarak orta seviye bir yapılandırma yeterlidir. OCR ve büyük dosya dönüştürme işlemleri anlık olarak CPU ve belleği zorlayabildiği için, üretim ortamında en az 2 çekirdek ve 2 GB RAM öneririm. Kalıcı ve yüksek performanslı bir ortam arıyorsanız, kendi kaynaklarınızı ayırabildiğiniz bir sanal sunucu ya da daha yoğun kullanımlar için bir VDS sunucu bu iş için biçilmiş kaftandır.
Ters Proxy ile Yayına Alma ve Güvenlik#
Uygulamayı 8080 portundan doğrudan açık bırakmak bir test için sorun değildir, ancak üretim ortamında bunun önüne bir ters proxy koymak şarttır. Nginx bu iş için standart tercihtir; hem uygulamayı 80/443 portlarında düzgün bir alan adı altında sunar hem de SSL sertifikasını sonlandırır. Aşağıdaki yapılandırma, pdf.sirketiniz.com gibi bir alt alan adını Stirling-PDF'e yönlendirir.
server {
listen 80;
server_name pdf.sirketiniz.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name pdf.sirketiniz.com;
ssl_certificate /etc/letsencrypt/live/pdf.sirketiniz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pdf.sirketiniz.com/privkey.pem;
client_max_body_size 512M;
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;
}
}
Buradaki iki ayar özellikle önemlidir. client_max_body_size değeri, yükleyebileceğiniz en büyük dosya boyutunu belirler; varsayılan olarak Nginx bunu 1 MB'a sınırlar ve büyük PDF'ler "413 Request Entity Too Large" hatasıyla reddedilir. Değeri makul bir seviyeye çekmezseniz büyük dosyalarla çalışamazsınız. proxy_read_timeout ise OCR gibi uzun süren işlemlerin proxy tarafından yarıda kesilmemesi için yükseltilmiştir; ağır bir taranmış belgeyi işlerken 30 saniyelik varsayılan zaman aşımı yetersiz kalabilir.
Alt alan adı için bir DNS kaydı oluşturmayı unutmayın; sunucunuzun IP adresine işaret eden basit bir A kaydı yeterlidir.
pdf IN A 203.0.113.10
SSL sertifikasını Let's Encrypt ile ücretsiz alabilirsiniz, ancak kurumsal bir ortamda genişletilmiş doğrulama ya da wildcard sertifika ihtiyacınız olursa SSL sertifikası seçeneklerimize göz atabilirsiniz. Uygulamayı halka açık internete çıkarıyorsanız, ek bir koruma katmanı için önüne bir WAF (web uygulama güvenlik duvarı) yerleştirmek ve olası saldırılara karşı DDoS koruma sağlamak isteyebilirsiniz. Çoğu kurumda ise Stirling-PDF yalnızca iç ağa açılır; bu durumda alan adını dış dünyaya hiç yayımlamadan yalnızca ofis içinden erişilir kılmak en güvenli yaklaşımdır.
Arayüz Kullanımı ve Günlük İş Akışı#
Stirling-PDF'in arayüzü kasıtlı olarak sadedir; teknik olmayan bir kullanıcının bile birkaç dakikada alışabileceği şekilde tasarlanmıştır. Ana sayfada tüm araçlar kart halinde listelenir ve üstteki arama kutusundan aradığınız işlemi hızla bulabilirsiniz. Bir aracı seçtiğinizde tipik akış her zaman aynıdır: dosyayı sürükleyip bırakırsınız, işleme özel birkaç seçeneği ayarlarsınız ve "işle" düğmesine basıp sonucu indirirsiniz.
Somut bir örnek üzerinden gidelim. Elinizde beş ayrı PDF var ve bunları tek dosyada birleştirip müşteriye göndermek istiyorsunuz. "Birleştir" aracını açar, beş dosyayı da sürükler bırakırsınız. Dosyaların sırasını sürükleyerek düzenleyebilir, gerekirse aralarına boş sayfa ekleyebilirsiniz. "Birleştir" düğmesine bastığınızda saniyeler içinde tek bir PDF iner. Aynı belgeyi sonradan parolayla korumak isterseniz, çıktıyı "Parola Ekle" aracına verir, bir şifre belirler ve korumalı sürümü indirirsiniz. Böylece iki işlemi arka arkaya zincirleyerek eksiksiz bir iş akışı kurmuş olursunuz.
Sık tekrarlanan işler için arayüzün ötesine geçmek de mümkündür. Stirling-PDF, tüm işlemlerini bir API üzerinden de sunar; bu sayede örneğin her gün oluşan faturaları otomatik olarak birleştiren bir betik yazabilir ya da bir belge yönetim sistemine OCR adımını entegre edebilirsiniz. Aşağıdaki örnek, komut satırından iki PDF'i API üzerinden birleştirir.
curl -X POST "https://pdf.sirketiniz.com/api/v1/general/merge-pdfs" \
-H "X-API-KEY: sizin-api-anahtariniz" \
-F "[email protected]" \
-F "[email protected]" \
-o birlesik.pdf
Bu otomasyon yeteneği, Stirling-PDF'i basit bir web aracı olmaktan çıkarıp bir belge işleme altyapısına dönüştürür. Muhasebe yazılımınızın ürettiği raporları geceleri otomatik sıkıştırıp arşivleyebilir, gelen taranmış evrakları bir klasöre bırakıldıkça OCR'dan geçirebilirsiniz. Bu tür belge yoğun otomasyonları kurarken sunucunuzun sürekli ayakta ve bakımlı kalması önemlidir; sunucu yönetimi hizmetimiz bu yükü sizin yerinize üstlenebilir.
Bakım, Yedekleme ve Sürüm Yönetimi#
Stirling-PDF'in güzel yanı, kalıcı olarak saklaması gereken pek az veriye sahip olmasıdır. İşlediği dosyaları saklamaz; yalnızca yapılandırma dosyaları, varsa kullanıcı hesapları ve OCR dil paketleri kalıcıdır. Docker Compose kurulumunda bu dizinleri volumes ile dışarı bağladığınız için, yedekleme aslında bu birkaç klasörü düzenli olarak kopyalamaktan ibarettir. Aşağıdaki basit betik, yapılandırma ve veri dizinlerini tarih damgalı bir arşive alır.
#!/bin/bash
TARIH=$(date +%Y-%m-%d)
tar czf /yedek/stirling-$TARIH.tar.gz \
/opt/stirling/config \
/opt/stirling/data
find /yedek -name "stirling-*.tar.gz" -mtime +30 -delete
Bu betiği bir cron görevine bağlayarak her gece otomatik çalıştırabilir ve 30 günden eski yedekleri otomatik temizleyebilirsiniz. Kurumsal bir ortamda yedeklerin ayrı bir konumda tutulması altın kuraldır; sunucu yedekleme stratejinizi bütüncül kurmak isterseniz yedekleme hizmetimiz bu işi otomatikleştirir. Sürüm güncellemesi de son derece basittir: docker compose pull ile yeni imajı çeker, ardından docker compose up -d ile konteyneri yeniden başlatırsınız. Yapılandırma dizinleri dışarı bağlı olduğu için ayarlarınız güncellemeden etkilenmez.
Uygulamayı başka bir sunucuya taşımak da aynı sadelikte ilerler; volume dizinlerini yeni sunucuya kopyalayıp Compose dosyasını çalıştırdığınızda kurulum olduğu gibi ayağa kalkar. Böyle bir geçişte sıfır kesinti hedefliyorsanız site taşıma desteğimiz süreci sizin adınıza planlayabilir. Genel olarak Stirling-PDF bakımı düşük, gündelik müdahale gerektirmeyen bir sistemdir; bir kez düzgün kurduğunuzda uzun süre kendi halinde çalışır.
Sıkça Sorulan Sorular#
Stirling-PDF gerçekten tamamen ücretsiz mi?#
Evet, Stirling-PDF açık kaynak lisansıyla dağıtılan, tamamen ücretsiz bir yazılımdır. Kurulum, kullanım ve tüm araçları için herhangi bir lisans bedeli ödemezsiniz; kaynak kodunu inceleyip kendinize göre uyarlayabilirsiniz. Katlanacağınız tek maliyet, uygulamayı barındıracağınız sunucunun maliyetidir ki bu da kendi altyapınızda çok makul bir seviyededir.
Yüklediğim dosyalar sunucuda saklanıyor mu?#
Hayır, Stirling-PDF işlediği dosyaları kalıcı olarak saklamaz. Bir dosyayı yüklediğinizde yalnızca o işlem süresince bellekte tutulur, işlem tamamlanıp sonucu indirdikten sonra silinir. Verinin dışarı hiçbir üçüncü tarafa gönderilmemesi ve işlem bitince kalmaması, uygulamanın en temel gizlilik vaadidir. Bu davranışı loglama ve geçici dizin ayarlarıyla daha da sıkılaştırabilirsiniz.
Türkçe belgelerde OCR düzgün çalışır mı?#
Çalışır, ancak bunun için Türkçe dil paketinin yüklü olması gerekir. Resmi Docker imajı Türkçe dahil çok sayıda dili destekler ve LANGS değişkenine tr_TR ekleyerek dil paketini etkinleştirebilirsiniz. Doğru dil seçildiğinde OCR motoru Türkçeye özgü karakterleri isabetli biçimde tanır ve taranmış belgeleriniz aranabilir hale gelir. Tarama kalitesi ne kadar yüksekse tanıma doğruluğu da o kadar artar.
Kaç kullanıcı aynı anda kullanabilir?#
Bu tamamen sunucunuzun kaynaklarına bağlıdır. Küçük bir ekip için orta seviye bir sanal sunucu rahatlıkla yeterlidir; ancak OCR ve büyük dosya dönüştürme gibi işlemler anlık olarak CPU'yu zorladığından, çok sayıda kullanıcı aynı anda ağır işlemler yaparsa daha güçlü bir yapılandırmaya ihtiyaç duyarsınız. Kullanıcı sayısı arttıkça CPU çekirdeğini ve belleği artırmak performansı doğrudan iyileştirir.
Halka açık internete çıkarmak güvenli mi?#
Doğru yapılandırılırsa güvenlidir, ama dikkat gerektirir. İnternete açacaksanız mutlaka bir ters proxy arkasında SSL ile sunmalı, oturum açma zorunluluğunu etkinleştirmeli ve güçlü parolalar kullanmalısınız. Ek koruma için önüne bir web uygulama güvenlik duvarı koymak ve saldırılara karşı önlem almak akıllıca olur. Çoğu kurum ise uygulamayı yalnızca iç ağa açar; hassas belgelerle çalıştığınız için mümkünse bu yolu tercih etmenizi öneririm.
Kapanış#
Stirling-PDF, çevrimiçi PDF araçlarının sunduğu kolaylığı, verinizi başkasına teslim etmeden elde etmenin en olgun yoludur. 50'den fazla işlemi tek arayüzde toplaması, Docker ile dakikalar içinde kurulabilmesi ve dosyalarınızın asla sunucunuzdan çıkmaması onu hem küçük ekipler hem de kurumsal ortamlar için güçlü bir tercih yapar. Birleştirmeden OCR'a, sıkıştırmadan parola korumasına kadar günlük belge işlerinizin neredeyse tamamını kendi kontrolünüzde halledersiniz.
Bu tür self-hosted uygulamaları sorunsuz çalıştırmanın anahtarı sağlam bir altyapıdır. Stirling-PDF ve benzeri araçları barındırmak için ihtiyacınıza uygun bir sanal sunucu ya da VDS sunucu seçebilir, kurulum ve bakım yükünü sunucu yönetimi hizmetimizle bize bırakabilirsiniz. Hazır kurulumlu uygulamaları keşfetmek isterseniz App Center sayfamıza göz atın; Clou.TR ekibi olarak kendi PDF araç kutunuzu kurmaktan yayına almaya kadar her adımda yanınızdayız.